【问题标题】:In html, pdf file to be save as, not to be opened directlyhtml、pdf文件要另存为,不能直接打开
【发布时间】:2013-02-28 11:09:30
【问题描述】:

我正在做一个项目,我必须保留下载 pdf 的选项。 当我点击下载按钮[图片]时,它直接打开了pdf文件。

相反,我希望出现“另存为”对话框,该对话框仅在要下载的文件为 .doc 或 docx 格式时才会出现。

pdf格式还有其他选择吗?

谢谢。

【问题讨论】:

  • 你用的是什么浏览器?
  • 这可能需要在服务器端完成。你用的是什么网络服务器?
  • 基于 Linux 的服务器..纯 HTML 站点
  • 这不能通过 HTML/CSS 完成。请参阅 orique 的答案。您需要告诉 apache 添加/编辑特定标题以“强制文件下载”。询问您的托管服务提供商是否使用 apache 并启用了 mod_headers。
  • 哦...这意味着,这将由网络托管服务提供商完成,而不是由我们完成。 @SalmanA

标签: html css


【解决方案1】:

HTML5方式:

download 属性添加到您的下载链接:

在某些情况下,资源旨在供以后使用,而不是 立即观看。表示资源旨在 下载以供以后使用,而不是立即使用,download 属性可以在 aarea 元素上指定 指向该资源的超链接。

该属性还可以被赋予一个值,以指定文件 用户代理在将资源存储在文件中时使用的名称 系统。这个值可以被Content-Disposition HTTP 覆盖 头文件名参数。 [RFC6266]

在跨域的情况下,必须结合下载属性 带有 Content-Disposition HTTP 标头,特别是带有 附件处置类型,避免用户被警告 可能是邪恶的活动。 (这是为了保护用户不被 下载敏感的个人或机密信息 他们完全理解。)

这意味着你可以写:

<a href="/path/to/file.pdf" download>Download the file</a>

<a href="/path/to/export-as-pdf.php?id=1" download="report.pdf">Download the file</a>

老派:

您可以告诉网络服务器添加Content-Disposition: attachment 标头,这会导致(正常)浏览器弹出“另存为...”对话框。如果您使用的是 Apache 并且已安装 mod_headers,则将这些行添加到 .htaccess 文件中:

<Files *.pdf>
    Header set Content-Disposition attachment
</Files>

这里有更详细的讨论:
How to send Content-Disposition headers in apache for files

【讨论】:

【解决方案2】:
【解决方案3】:

在 Firefox 中

工具 -> 选项 -> 常规 -> 选择总是询问我保存文件的位置

在 Chrome 中

打开设置 -> 选择高级设置 -> 在下载前检查每个文件的保存位置

在 Opera 中

转到 Opera 菜单 -> 设置 -> 首选项 -> -> 高级下载 -> 高级 -> 编辑所需的 mime 类型并选择显示下载对话框

在 IE 中

打开 Adob​​e Reader 程序 -> 首选项 -> 互联网 -> 取消勾选在浏览器中显示 PDF

下载

如果您不确定 PDF 的保存位置,您可以使用 Ctrl+J 从任何浏览器访问您的下载文件夹,在浏览器中打开的任何 PDf 将转到一个临时文件夹,但下载的将转到您拥有的任何下载目录已选中。

HTML 5 属性解决方法

你可以使用这个 HTML 属性来强制链接,jquery 也支持同样的东西(感谢 Austin)

<a href="path/to/file" download>Click here to download</a>

【讨论】:

  • 当然,我可以做到。但是我如何将这些步骤告诉我的每个客户?第二个问题是默认情况下它适用于 doc 文件,但不适用于 pdf 文件。怎么样?
  • 大多数浏览器的默认行为是打开PDF,客户端可以更改但强制保存,这可能有助于stackoverflow.com/questions/11353425/…
  • download 是属性,所以只需将 path/to/file 更改为您的文件位置,它适用于所有 MIME 类型。请注意这是一个 HTML5 属性。
  • 你可以在jsfiddle.net/DerekL/uMwqc/2看到这个设置为自动下载的例子
猜你喜欢
  • 2018-05-17
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2016-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多