【发布时间】:2010-05-13 10:25:55
【问题描述】:
我有一个下载页面,其中保存了音乐、图片、电子书等。每当用户单击图像时,它就会打开它,如果用户在他们的 PC 上安装了 pdf 阅读器,那么 .pdf 文件也会发生同样的事情吗?
我不想让他们打开文件而是下载它?任何想法
【问题讨论】:
-
多次重复。搜索“PHP强制下载”
标签: php pdf http-headers
我有一个下载页面,其中保存了音乐、图片、电子书等。每当用户单击图像时,它就会打开它,如果用户在他们的 PC 上安装了 pdf 阅读器,那么 .pdf 文件也会发生同样的事情吗?
我不想让他们打开文件而是下载它?任何想法
【问题讨论】:
标签: php pdf http-headers
header('Content-disposition: attachment; filename=NAME_OF_YOUR_FILE');
【讨论】:
你必须添加一个标题来强制下载。
header("Content-Disposition: Attachment")
header("Content-Disposition: Attachment;filename=FILENAME_HERE")
【讨论】:
使用 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
【讨论】: