gpt4 book ai didi

internet-explorer - Internet Explorer 9 不为内嵌附件使用文件名

转载 作者:行者123 更新时间:2023-12-04 13:53:38 25 4
gpt4 key购买 nike

我在 Servlet 中使用此代码来设置内联 PDF 文档的文件名:

response.setContentType("application/pdf");
response.setContentLength((int) file.length());
response.setHeader("Content-disposition", "inline; filename=\"" + file.getName() + "\"");

但是,这在 IE 9 中不起作用:“另存为...”对话框仅显示 URL 的最后一个路径部分,后跟“.pdf”(对于“/some/url/invoice”,它是“invoice.pdf” )

这是一个已知的错误?有解决方法吗?

最佳答案

这确实是 IE 的默认行为。它不使用 filename Content-Disposition 的属性header 以任何方式为另存为准备默认文件名。相反,它使用请求 URL 路径信息的最后一部分。

我建议以这样的方式重写您的 Servlet 和/或链接,以便将所需的文件名作为请求路径信息的一部分提供,而不是作为例如请求参数的一部分。

所以,而不是

<a href="/pdfservlet">View PDF</a>

或者
<a href="/pdfservlet?file=foo.pdf">View PDF</a>

你需要使用
<a href="/pdfservlet/foo.pdf">View PDF</a>

当映射到 /pdfservlet/* 的 URL 模式时,如有必要,您可以在 servlet 中动态获取文件名部分,如下所示(例如,定位所需的 PDF 文件和/或在标题中为更合适的网络浏览器设置正确的 filename):
String filename = request.getPathInfo().substring(1); // foo.pdf

顺便说一下,无论它是内嵌的还是作为附件提供的。

关于internet-explorer - Internet Explorer 9 不为内嵌附件使用文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8878656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com