PDA

Показать полную графическую версию : [решено] PHP|Скачать файл


morgan1991
05-01-2010, 17:01
Здравствуйте!
Проблема в следующем:
Нужно открыть файл на удалённом сервере и передать его в браузер, но так чтоб браузер не выводил его на экран, а начал скачивать...
Пробовал так:
$OpenFile = "http://94.198.240.87/downloadp5/4543.ac4608a62f7e51286fad6f253_RSFpq0JD7LvY/1150798/letitbit.net/Mozila_Firefox.rar";
$origFileName = "Mozila_Firefox.rar";
header('Content-Disposition: attachment; filename="'.$origFileName.'"');
header("Content-Transfer-Encoding:* binary");
$fp = @fopen($OpenFile, "rb");
while (!feof($fp)) {
$st = fread($fp, 99999999999999);
echo $st;
}
И так:
$OpenFile = "http://94.198.240.87/downloadp5/4543.ac4608a62f7e51286fad6f253_RSFpq0JD7LvY/1150798/letitbit.net/Mozila_Firefox.rar";
$origFileName = "Mozila_Firefox.rar";
header('Content-Disposition: attachment; filename="'.$origFileName.'"');
header("Content-Transfer-Encoding:* binary");
readfile($OpenFile);
И как только не старался, но качается только около 11 мб, а затем закачка обрывается...
Может это из-за хостинга? Может он не позволяет заниматься таким с PHP?
И вообще такие действия сильно нагружают сервер?

Пробовал на локальном компьютере, на Денвере, тоже самое...

Coutty
05-01-2010, 17:32
Возможно, стоит ограничение по времени исполнения скрипта в 30 сек.
Так во втором случае закачка всё-таки идёт?

Sham
05-01-2010, 17:42
см. memory_limit (http://docs.php.net/manual/ru/ini.core.php#ini.memory-limit) в php.ini

Это неимоверное грузилово! Необходимо предусмотреть кэширование файлов, чтобы загружать с удаленного сервера только единожды, а в остальных случаях отдавать уже загруженный файл.

morgan1991
05-01-2010, 18:03
Так во втором случае закачка всё-таки идёт? »
В обоих случаях не работает...
Возможно, стоит ограничение по времени исполнения скрипта в 30 сек. »
На денвере стоит 60 сек, а на хостинге 30, а качает одинаково 11 мб...
Необходимо предусмотреть кэширование файлов »
Не полчится, хранить негде, нужно сразу юзеру отдавать файл...
Это неимоверное грузилово! »
Может есть другой вариант???

Igor_I
11-01-2010, 21:44
nginx




© OSzone.net 2001-2012