如何强制浏览器不下载带有content-disposition:attachment头文件的文件

6

例如:

<iframe src="http://otherdomainidontcontrol.com/blah.csv"></iframe>

并且blah.csv文件的头部如下:

Content-Disposition: attachment; filename=blah.csv;

有没有可能强制blah.csv在iframe中呈现而不是下载?


你是指从服务器还是在浏览器上?在服务器上,您需要将 disposition 更改为 inline,mime 类型更改为浏览器将呈现的内容(例如 text/plain)。通过 AJAX 获取内容应该可以使用 javascript 渲染它。 - symcbean
2个回答

10
我们实际上一直在研究这个问题,因为我们希望浏览器能够在可行的情况下嵌入文件 - 如果不能,则希望浏览器以适当的名称下载文件。
如果将Content-Disposition标头更改为inline而不是attachment,则可以按此方式工作 - 如果浏览器能够这样做,则会呈现文件;否则,文件将按Content-Disposition标头中文件名部分指定的任何名称下载。
但是,如果像你所说的那样,你的blah.csv带有该标头且无法拦截或更改它,则我同意没有办法解决。 "attachment"部分指定要下载文件。

5

我认为没有绕过Content-Disposition的方法(这很可能是出于安全原因)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接