如何强制用户下载文件,而不是查看文件?

时间:2010-05-13 10:25:56

标签: php pdf http-headers

我有一个下载页面,我保存了音乐,图片,电子书等。每当用户点击图像时它会打开它,如果用户在他们的PC上安装了pdf阅读器,那么.pdf文件会发生同样的事情吗? / p>

我不希望他们打开文件但要下载它?任何想法

3 个答案:

答案 0 :(得分:5)

header('Content-disposition: attachment; filename=NAME_OF_YOUR_FILE');

答案 1 :(得分:1)

您必须添加标题才能强制下载。

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

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

答案 2 :(得分: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