Как заставить пользователя скачивать файл, а не просматривать его?
У меня есть страница загрузки, на которой я храню музыку, картинки, электронные книги и т. Д. Всякий раз, когда пользователи нажимают на изображение, оно открывает его, и то же самое происходит с файлами.pdf, если пользователь установил программу чтения PDF на своем ПК?
Я не хочу, чтобы они открывали файл, но чтобы загрузить его? Есть идеи
3 ответа
Решение
Вы должны добавить заголовок для принудительной загрузки.
header("Content-Disposition: Attachment")
header("Content-Disposition: Attachment;filename=FILENAME_HERE")
header('Content-disposition: attachment; filename=NAME_OF_YOUR_FILE');
С Apache mod_headers:
SetEnvIf Request_URI "([^/]+\.jpg)$" REQUESTED_FILE_BASENAME=$1
SetEnvIf Request_URI "([^/]+\.mp3)$" REQUESTED_FILE_BASENAME=$1
SetEnvIf Request_URI "([^/]+\.pdf)$" REQUESTED_FILE_BASENAME=$1
Header set Content-Disposition "attachment; filename=\"%{REQUESTED_FILE_BASENAME}e\"" env=REQUESTED_FILE_BASENAME
Инструкции могут быть размещены внутри .htaccess
файл, который сам должен идти в каталог, содержащий ваши медиа. Вы используете практически любое расширение. Следующая строка может также помочь против агрессивных плагинов:
Header set Content-Type "application/octet-stream" env=REQUESTED_FILE_BASENAME