【发布时间】:2013-02-21 05:02:35
【问题描述】:
在我的网络上,我想要两个按钮 - 第一个 Download 应该将 pdf 下载到用户的计算机,另一个 View 在新选项卡中打开 pdf。问题是,我不知道如何制作Download 按钮。您可能会说它没用,因为您可以在“查看”后保存 pdf,但我已经制作了这样的图形并且不想更改它。是否可以阻止浏览器打开pdf文件并使其下载文件?
【问题讨论】:
在我的网络上,我想要两个按钮 - 第一个 Download 应该将 pdf 下载到用户的计算机,另一个 View 在新选项卡中打开 pdf。问题是,我不知道如何制作Download 按钮。您可能会说它没用,因为您可以在“查看”后保存 pdf,但我已经制作了这样的图形并且不想更改它。是否可以阻止浏览器打开pdf文件并使其下载文件?
【问题讨论】:
您需要在服务器端脚本中强制下载文件:
这是一个 PHP 示例:
$file = "path/to/my-file.pdf";
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
【讨论】:
最后,当我使用 nginx 时,我决定在 http-server 级别解决这个问题:
location /media {
alias /srv/www/novacek/media/;
}
location /download/media {
alias /srv/www/novacek/media/;
add_header Content-Disposition "attachment";
}
【讨论】: