我有一些文件,我希望人们能够根据需要在浏览器中下载或查看。 我不知道如何简单地做到这一点,在主机中设置标头或做一些 JavaScript 魔法。
最终结果应该是一个 html 页面,每个文件列出 2 个链接,一个用于在新选项卡中打开,一个用于下载文件。我可以得到一个,或另一个,但不能同时工作。
我尝试了两个内容处置选项,它们都有效,但不能同时工作。 我尝试了chrome.downloads api,但它在普通的html脚本中不可用。 我试过这个,但它下载了一个文本文件,其中包含链接本身,而不是文件内容。 下载属性被忽略,取而代之的是内容处置标头,默认为内联,因此即使不设置它也会强制打开并且不允许下载。
Content-Disposition: inline
Content-Disposition: attachment
<a href="test.txt" download="text.txt" target="_blank">
谁能发现我做错了什么?
Content-Disposition
标头需要由服务器发送,我相信在您的情况下,对于响应中的给定文件,它只能出现一次(在您的情况下,您只发送一个文件,而不是包含多个文件的多部分表单数据(。毕竟,这是对用户代理的建议,关于它应该如何处理该文件。若要实现链接,需要两个单独的 URL(如果有服务器端脚本,则区别可能是查询字符串(:一个提供Content-Disposition: inline
响应,另一个提供Content-Disposition: attachment; filename="text.txt"
响应。如果您这样做,链接应该可以在任何现代浏览器中工作。
可悲的是,似乎没有任何方法可以仅使用标头来做到这一点,我需要涉及一定数量的脚本。