PHP: Force the browser to download the file
Force the browser to download the file instead of opening it
$file_text = 'Some text here';
if (isset($_SERVER['HTTP_USER_AGENT']) and strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE'))
Header('Content-Type: application/force-download');
else
Header('Content-Type: application/octet-stream');
Header('Accept-Ranges: bytes');
Header('Content-Length: ' . strlen($file_text));
Header('Content-disposition: attachment; filename="downloaded_file.txt"');
echo $file_text;
exit();
Tag: PHP, File Routines, Browser, Download





highfeed
30th May 2013, 05:24
Мне например, удалось реализовать выдачу файлов через PHP Nginx с записью статистики скачиваний и проверкой авторизации пользователя.
Как это работает: веб-сервер получает запрос о скачивании файла, в PHP совершаются необходимые проверки и запись статистики, далее Nginx`у отправляется заголовок «X-Accel-Redirect», завершаем работу скрипта и Nginx уже выдает статический файл.
Тут более подробно: