2010-05-13 3 views
1

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

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

+1

Несколько дубликатов. Поиск "PHP force download" –

+0

Возможный дубликат [Forcing для загрузки файла с использованием PHP] (http://stackoverflow.com/questions/1465573/forcing-to-download-a-file-using-php) –

ответ

1

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

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

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

+0

Ссылка на вас не работает. Или это только у меня есть проблема? – etalon11

+0

Nop, похоже, похоже. Изменен url .. – Elph

+0

Не могли бы вы включить соответствующие части в свой ответ? Прямо сейчас это ссылка, которая не подходит для SO. – ThiefMaster

0

С 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 
Смежные вопросы