Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   как передать новый url на скачку файла (https://javascript.ru/forum/server/45473-kak-peredat-novyjj-url-na-skachku-fajjla.html)

jobmsk 02.03.2014 16:31

как передать новый url на скачку файла
 
есть ссылка на файл типа :
http://sait1.ru/download.php?url=название_файла.txt

как сделать чтобы скрипт в download.php выдавал ссылку на скачку файла с другого домена , типа:

http://sait2.ru/название_файла.txt
ну и ,чтобы у клиентский браузер сохранял файл с тем же названием...

danik.js 03.03.2014 01:45

Цитата:

Сообщение от jobmsk
как сделать чтобы скрипт в download.php выдавал ссылку на скачку файла с другого домена

<?
var url = 'http://sait2.ru/' + $_GET['url'];
echo "<a href='$url'>сцылко</a>";
Цитата:

Сообщение от jobmsk
ну и ,чтобы у клиентский браузер сохранял файл с тем же названием...

А это никак. Это только sait2.ru может сделать.

jobmsk 03.03.2014 02:40

Цитата:

Сообщение от danik.js (Сообщение 300427)
<?
var url = 'http://sait2.ru/' + $_GET['url'];
echo "<a href='$url'>сцылко</a>";

а , ну так это с редиректом получится, а так чтобы без него?

danik.js 03.03.2014 04:27

Цитата:

Сообщение от jobmsk
а , ну так это с редиректом получится, а так чтобы без него?

Каким еще редиректом? Ты просил ссылку - скрипт выдаст ссылку. Проблемы?

jobmsk 03.03.2014 15:27

возможно не так сформулировал, уточняю - нужно чтобы при клике на http://sait1.ru/download.php?url=название_файла.txt не новая ссылка вылезала , а сразу загрузка начиналась но уже по новой ссылке http://sait2.ru/название_файла.txt

danik.js 03.03.2014 18:21

Чтоб задать имя скачиваемого файла нужно выстовить http-заголовок Content-Disposition вроде бы.

Ну а сам файл запрашиваешь через fopen fread (если не отключена фишка работы с файлами по http) и отправляешь в stdout. Запросить еще можно через cURL

jobmsk 03.03.2014 19:21

как подсунуть имя файла более менее ясно, но вот как подсунуть ссылку для скачивания причем так чтобы файл не закачивать локально, а просто дать какачть напрямую, но по новой ссылке?

danik.js 03.03.2014 20:33

Можешь сделать редирект на URL файла. Но тогда не сможешь форсировать закачку, ибо txt-файл браузер скорее всего не предложит сохранить, а вместо этого отобразит его содержимое. Если сервер форсирует сохранение файла (через Content-Disposition), то проблема отпадает.

jobmsk 03.03.2014 20:48

Цитата:

Сообщение от danik.js (Сообщение 300714)
Если сервер форсирует сохранение файла (через Content-Disposition), то проблема отпадает.

так в этом и вопрос, как без редиректа это сделать......если ссылка локальная то все работает...а как ссылку с другого ресурса через header подсунуть?

danik.js 03.03.2014 21:01

Ты либо через соединение со своим сервером передаешь данные (то есть читаешь удаленный файл и отдаешь браузеру данные) - то есть играешь роль прокси. Либо ты редиректишь браузер на другой сервер и он соединяется с ним и качает с него. Других вариантов нет.


Часовой пояс GMT +3, время: 13:06.