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 уже выдает статический файл.
Тут более подробно: