【问题标题】:How to force the user to download a file, not to view it?如何强制用户下载文件而不是查看文件?
【发布时间】:2011-02-19 00:56:02
【问题描述】:

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

我不想让他们打开文件而是下载它?任何想法

【问题讨论】:

标签: php pdf http-headers


【解决方案1】:
header('Content-disposition: attachment; filename=NAME_OF_YOUR_FILE');

【讨论】:

    【解决方案2】:

    你必须添加一个标题来强制下载。

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

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

    【讨论】:

    • 您发布的链接无效。还是只有我有问题?
    • 您能否在答案中包含相关部分?现在这是一个仅链接的帖子,不太适合 SO。
    【解决方案3】:

    使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多