用户单击链接时如何强制“另存为”选项
Posted
技术标签:
【中文标题】用户单击链接时如何强制“另存为”选项【英文标题】:How can I force a "save as" option when the user clicks a link 【发布时间】:2011-12-08 10:28:06 【问题描述】:我的网页上有一个 PDF 链接,我想知道是否可以随时询问用户是否要下载 PDF 或在新窗口中打开它。这可能吗?我意识到人们不希望 PDF 自动下载,但是 2 个链接或一个选项会很棒。
互联网上有很多关于此的文档,有些人甚至说我必须拥有 php,而这在我使用的服务器上是不可能的。
我需要一个 javascript、jQuery 解决方案或替代建议。我知道的并不多。
非常感谢您阅读本文,希望它有意义。
一切顺利! T.
【问题讨论】:
【参考方案1】:它可以完成,但不能在客户端 javascript 中完成。如果您有一个提供文件的服务器端脚本,它可以发送一个Content-Disposition: attachment
标头以及响应。这将在浏览器中触发另存为对话框。
如果它们是静态文件,您还可以更改服务器的配置。对于 Apache,请使用 FilesMatch 指令。这里有一个很好的 PDF 文件示例:
http://www.thingy-ma-jig.co.uk/comment/7045
【讨论】:
您好,如果我使用此选项,是否必须指定此文件的名称?它是动态生成的...感谢您的出色回答:) 您不必这样做,尽管有可能。除了此标头之外,您还可以指定filename
标头。您在此处指定的名称是浏览器将在另存为对话框中建议的名称。该名称不一定必须与服务器上的名称相匹配。更好的是:服务器上的磁盘上甚至不必有 pdf 文件。可以生成内容并将其发送到带有文件名标头的客户端,而服务器上永远不会有真正的 pdf 文件。
添加了一点关于 FilesMatch 指令的内容。以上是关于用户单击链接时如何强制“另存为”选项的主要内容,如果未能解决你的问题,请参考以下文章
强制打开“另存为...”弹出窗口在文本链接处打开单击以获取 HTML 中的 PDF
如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?
有啥方法可以“模拟”右键单击另存为命令或使用 JavaScript 在浏览器中强制下载文件?