Организация скачивания файла

vorona
На сайте с 31.01.2010
Offline
91
579

Добрый день.

Файл находится постоянно в одной и той же директории.

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

Вообщем нужно сделать так, чтобы закачка файла была вохможна только со страницы с описанием файла.

AGIVEO (http://agiveo.net/) - бесплатная браузерная многопользовательская онлайн игра в жанре футбольного менеджера =)
[umka]
На сайте с 25.05.2008
Offline
456
#1
Лог в помощь!
unixadm
На сайте с 24.09.2010
Offline
110
#2

Я бы не советовал это делать с помощью PHP - зря нагрузите сервер. Лучше сделать средствами вебсервера. Не сможете самостоятельно - обращайтесь.

Host4Biz: NVMe Хостинг в Европе ( https://host4.biz/ru/hosting/shared-hosting ) | Windows/Linux NVMe VPS в Европе ( https://host4.biz/ru/vps ) | Выделенные серверы в Европе, США и Азии ( https://host4.biz/ru/servers/dedicated )
rtyug
На сайте с 13.05.2009
Offline
263
#3
vorona:

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

Вообщем нужно сделать так, чтобы закачка файла была вохможна только со страницы с описанием файла.

!!!1111

лучше всего временную ссылку сделать на nginx

на php просто можно отдать, вариантов, много как-то так:

$mimetype = 'application/octet-stream';


$fsize = filesize($filepath);
$ftime = date('D, d M Y H:i:s T', filemtime($filepath));

$fd = @fopen($filepath, 'rb');

if (isset($_SERVER['HTTP_RANGE'])) {
$range = $_SERVER['HTTP_RANGE'];
$range = str_replace('bytes=', '', $range);
list($range, $end) = explode('-', $range);

if (!empty($range)) {
fseek($fd, $range);
}
} else {
$range = 0;
}

if ($range) {
header($_SERVER['SERVER_PROTOCOL'].' 206 Partial Content');
} else {
header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
}


header('Content-Disposition: attachment; filename='.$end_file);
header('Last-Modified: '.$ftime);
header('Accept-Ranges: bytes');
header('Content-Length: '.($fsize - $range));
if ($range) {
header("Content-Range: bytes $range-".($fsize - 1).'/'.$fsize);
}
header('Content-Type: '.$mimetype);

fpassthru($fd);
fclose($fd);

exit;

Спалил тему: Pokerstars вывод WMZ, etc на VISA 0% или SWIFT + Конверт USD/GBP,etc (net profit $0,5 млрд) (https://minfin.com.ua/blogs/94589307/115366/) Monobank - 50₴ на счет при рег. тут (https://clck.ru/DLX4r) | Номер SIP АТС Москва 7(495) - 0Ꝑ, 8(800) - 800Ꝑ/0Ꝑ (http://goo.gl/XOrCSn)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий