0

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

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

pdf格式还有其他选择吗?

谢谢你。

4

3 回答 3

3

HTML5方式:

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

在某些情况下,资源旨在供以后使用,而不是立即查看。为了指示资源打算被下载以供以后使用,而不是立即使用,可以在创建到该资源的超链接的or元素download 上指定该属性。aarea

该属性还可以被赋予一个值,以指定用户代理在将资源存储在文件系统中时要使用的文件名。该值可以被Content-DispositionHTTP 标头的文件名参数覆盖。[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

于 2013-02-28T11:41:11.820 回答
1

如果您可以修改 HTTP 标头,则应在提供 PDF 时添加以下内容:

Content-Disposition: attachment;filename=xxxxxx.pdf

于 2013-02-28T11:12:13.890 回答
1

在火狐中

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

在 Chrome 中

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

在歌剧中

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

在 IE 中

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

下载

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

HTML 5 属性解决方法

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

<a href="path/to/file" download>Click here to download</a>
于 2013-02-28T11:17:18.380 回答