是否可以通过纯HTML下载pdf文件?

时间:2009-11-27 10:56:05

标签: html pdf download

我正在使用链接标记打开pdf文件。单击该链接时,将直接打开pdf文件。是否可以通过html将pdf文件下载并保存到我的系统中?

7 个答案:

答案 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>