我正在使用链接标签打开一个pdf文件。当点击该链接时,pdf文件会直接打开。是否有可能通过html下载并保存pdf文件到我的系统中?
简短的回答是:不行。PDF处理完全取决于客户端软件,从Web浏览器到PDF阅读器都是如此。您的服务器可以提供提示,供浏览器使用(或不使用),但您不能仅使用纯HTML来实现。
无论如何,您可能可以配置Web服务器以发送适当的HTTP标头。如果您使用的是Apache,则可以使用一个.htaccess文件:
<FilesMatch "\.(?i:pdf)$">
ForceType application/pdf
Header set Content-Disposition attachment
</FilesMatch>
Content-Disposition: attachment; filename="downloaded.pdf"
这可以通过代理php脚本或配置您的web服务器来完成。
http://example.com/download.php?stuff.pdf
这样的URL发出HTTP请求时,弹出“另存为”对话框并希望将下载的PDF文件保存为download.php
时,这真是令人恼火。在这些情况下,请务必发送filename=stuff.pdf
。 - ndim仅使用纯HTML,您无法强制此行为。
服务器需要发送Content-Disposition:attachment;filename=x.pdf
标题才能实现这一点。
我在网上看到过Alvaro的技巧被发布在不同的地方
<FilesMatch "\.(?i:pdf)$">
ForceType application/pdf
Header set Content-Disposition attachment
</FilesMatch>
但是出于某种原因,当我将这个添加到.htaccess文件中时,会出现500个内部服务器错误。有人知道为什么会发生这种情况吗?
更新:已经解决了 - 您需要安装Apache的头模块:
# a2enmod headers
我认为你无法通过HTML完成这个任务... 这需要通过头文件来完成, 你可以通过后端语言或Apache头文件进行修改
我知道这是一个老问题,但值得一提的是,现代许多浏览器现在支持对于链接的 下载
属性,可以像这样使用:
<a href="/path/to/mydownload.pdf" download>