Как организовать возможность докачки с удаленного хоста?

Статус
В этой теме нельзя размещать новые ответы.

Avenus

Under Glory Yield
Как организовать возможность докачки с удаленного хоста?

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

C локального хоста работает при:
$file_dir=dirname($_SERVER['HTTP_HOST']).'/files/';
Не могу никак разобраться как то же самое сделать с удаленного хоста с FTP.

PHP:
// все файлы архивы ZIP
$filename='file.zip';
// предположим, что известен... Либо определим через ftp_size
$filesize='1024000';
// на удаленном хосте файлы находятся в files
$file_dir='ftp://login:[email protected]/files/';
// также в папке files лежит .htaccess с запретом прямой загрузки для всех
// order deny,allow
// deny from all
// необходимо изменить имя файла при закачке
$title='load_file.zip';

define('FILE_PART_SIZE',1024*4*1);
ignore_user_abort(false);

$h=fopen($file_dir.$filename,'r');
header("Content-Type: application/octet-stream");
header('Accept-Ranges: bytes');

if(isset($_SERVER['HTTP_RANGE'])){
 preg_match_all('/bytes=([0-9]*)-([0-9]*)/',$_SERVER['HTTP_RANGE'],$out);
 header("HTTP/1.1 206 Partial Content");
 $rlow=$out[1][0];
 $rhigh=$out[2][0];
 if(empty($rhigh)) $rhigh=$filesize-1;
 header("Content-Range: bytes $rlow-$rhigh/$filesize");
 $filesize=$rhigh-$rlow+1;
}

header("Content-Disposition: attachment; filename=$title");
header("Content-Length: $filesize");
 
set_time_limit(0);

if(isset($rhigh)) fread($h,$rlow);
while(!feof($h)) echo fread($h,FILE_PART_SIZE);
fclose($h);
Спасибо за ответы или за ссылки, где наиболее близкими будут подсказки для вариантов решения.
 

zerkms

TDD infected
Команда форума
при чём тут этот весь код, если проблема даже совсем не в нём?
 

StUV

Rotaredom
Тема закрыта. Учитесь пользоваться поиском.

Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.

Поиск по форуму

http://phpclub.ru/faq/
http://phpclub.ru/detail/
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху