Как заставить пользователя скачивать файл, а не просматривать его?

У меня есть страница загрузки, на которой я храню музыку, картинки, электронные книги и т. Д. Всякий раз, когда пользователи нажимают на изображение, оно открывает его, и то же самое происходит с файлами.pdf, если пользователь установил программу чтения PDF на своем ПК?

Я не хочу, чтобы они открывали файл, но чтобы загрузить его? Есть идеи

3 ответа

Решение

Вы должны добавить заголовок для принудительной загрузки.

header("Content-Disposition: Attachment")
header("Content-Disposition: Attachment;filename=FILENAME_HERE")

с http://www.symkat.com/force-download-with-http-headers

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
Другие вопросы по тегам