我正在使用链接标记打开pdf文件。单击该链接时,将直接打开pdf文件。是否可以通过html将pdf文件下载并保存到我的系统中?
答案 0 :(得分:4)
简短回答是否:PDF处理完全取决于客户端软件,从Web浏览器到PDF阅读器。您的服务器可以提供浏览器可以使用的提示(或不提供),但是您无法使用纯HTML实现它。
无论如何,您可以将Web服务器配置为发送适当的HTTP标头。如果您使用 Apache ,则可以使用 .htaccess 文件:
<FilesMatch "\.(?i:pdf)$">
ForceType application/pdf
Header set Content-Disposition attachment
</FilesMatch>
如果将 application / pdf 替换为 application / octet-stream ,可能甚至绕过PDF插件(如果已安装)(不保证)虽然)。
其他网络服务器需要不同的配置。
答案 1 :(得分:3)
您应该更改服务器发送给客户端的标头,并添加类似的内容。
Content-Disposition: attachment; filename="downloaded.pdf"
可以使用代理php脚本或配置您的网络服务器来完成。
答案 2 :(得分:2)
您只能使用普通html强制此行为。
服务器需要发送Content-Disposition: attachment;filename=x.pdf
标头才能实现此目的。
答案 3 :(得分:1)
在Chrome和Firefox上测试,就像一个魅力!
<a href="./directory/yourfile.pdf" download="newfilename">Download the pdf</a>
其中newfilename是用户保存文件的建议文件名。或者如果你把它留空,它将默认为服务器端的文件名,如下所示:
<a href="./directory/yourfile.pdf" download>Download the pdf</a>
答案 4 :(得分:0)
我认为你不能用HTML做到这一点......这是通过标题完成的, 您可以使用后端语言或通过apache标头修改它们
答案 5 :(得分:0)
我见过Alvaro的小贴士在网上发布了几个不同的地方
<FilesMatch "\.(?i:pdf)$">
ForceType application/pdf
Header set Content-Disposition attachment
</FilesMatch>
但由于某些原因,当我将其添加到.htaccess文件时,我收到内部服务器错误500.任何人都知道为什么会发生这种情况?
更新:想出来 - 你需要安装apache的头文件:
# a2enmod headers
答案 6 :(得分:0)
我知道这是一个老问题,但值得一提的是,许多现代浏览器现在支持链接的download
属性,可以这样使用:
<a href="/path/to/mydownload.pdf" download>