我希望人们能够根据自己的意愿下载或在浏览器中查看一些文件。 我不知道如何简单地做到这一点,在主机中设置 header 或执行一些 JavaScript 魔法。
最终结果应该是一个 html 页面,每个文件列出 2 个链接,一个用于在新选项卡中打开,一个用于下载文件。我可以让其中之一工作,但不能同时工作。
我尝试了两个内容处置选项,它们都可以工作,但不能同时工作。 我尝试了 chrome.downloads api,但它在正常的 html 脚本中不可用。 我试过this但它下载一个文本文件,其中包含链接本身,而不是文件内容。 下载属性会被忽略,以支持 Content-Disposition header ,并且默认为内联,因此即使不设置它也会强制打开并且不允许下载。
Content-Disposition: inline
Content-Disposition: attachment
<a href="test.txt" download="text.txt" target="_blank">
有人能发现我做错了什么吗?
最佳答案
Content-Disposition
header 需要由服务器发送,我相信在您的情况下,对于响应中的给定文件,它只能出现一次(在根据您的情况,您只发送一个文件,而不是包含多个文件的多部分表单数据)。毕竟,这是向用户代理建议如何处理该文件。要实现链接,您需要两个单独的 URL(如果有服务器端脚本,差异可能是查询字符串):一个提供 Content-Disposition: inline
响应,另一个提供 Content-Disposition: inline
响应提供Content-Disposition:附件; filename="text.txt"
响应。如果您这样做,这些链接应该可以在任何现代浏览器中工作。
关于javascript - Content-Disposition header 允许下载和打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57465474/