【问题标题】:Make html/javascript link to a pdf only downloadable使 html/javascript 链接到仅可下载的 pdf
【发布时间】:2012-07-29 21:16:15
【问题描述】:

如何在我的网站上链接只能下载的 pdf 文件,而不是在浏览器中显示此 PDF?

【问题讨论】:

    标签: javascript html pdf href


    【解决方案1】:

    如何处理 HTTP 响应内容的行为最终由浏览器决定,而不是由服务器决定。但是,您可以向浏览器“建议”响应的内容是一个“文件”,并使用 content-disposition header 建议保存该文件的名称。

    请注意,HTTP 协议并没有像大多数人推断的那样真正传输“文件”。它传输带有相关标头的内容。因此,您所做的一切都是通过内容随附的标题完成的。

    编辑:我刚刚注意到您的标签...您是在谈论提供文件以供下载还是链接到其他地方提供的文件?如果是后者,那么我很确定它超出了您的控制范围。你的 JavaScript 或许可以控制请求头的内容,但响应头完全取决于服务器。

    【讨论】:

    • 我在 html 页面上有这个: 下载 ,我希望如果用户点击它,只会下载 pdf。
    • @michele:那你可能倒霉了。 (尽管如果有人可以纠正我,我很乐意了解它。)在这种情况下,您所做的一切,实际上您所能做的,就是指示浏览器对指定资源发出请求。服务器的响应方式不受您浏览器的控制。这里的标准方法是包含告诉用户右键单击并另存为的说明。
    【解决方案2】:

    您可以设置随响应发送的标头,以建议浏览器保存文件:

     Content-disposition: attachment; filename=whatever.pdf
    

    您如何在实践层面上实现这一点取决于您的网络服务器和/或编程环境。然而,尝试用 JavaScript 完成这件事可能不是前进的方向。

    其他选项包括通过将content-type 设置为application/octet-stream 或类似值来诱使浏览器认为文件实际上不是PDF。这通常是这样做的,这是否是一个好主意是值得商榷的。

    【讨论】:

    • 谢谢。这么多人建议 MIME 谎言,我担心这是唯一的方法!
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2017-08-24
    • 2015-10-14
    • 1970-01-01
    相关资源
    最近更新 更多