我正在java servlet中创建一个pdf,当我创建的pdf打开时,它错误地将我的servlet命名为pdf。这是我的代码:
response.setHeader(contentDisposition, "inline; filename=TemporaryVerification.pdf");
try {
reader = new PdfReader(CreateStuVerification.class.getResource("/resource/" + tempFile));
stamp = new PdfStamper(reader, response.getOutputStream());
所以我希望我的pdf命名为“TemporaryVerification.pdf”,但名称为“CreateStuVerification.pdf”(这是我的servlet的名称)。有谁知道这是为什么,也可能是如何纠正它?
编辑:我必须将其保留为内嵌pdf。虽然当我尝试将它作为附件时,它被正确命名。答案 0 :(得分:1)
此行为特定于IE浏览器。它使用URI路径的最后一部分作为下载资源的默认名称。理智的浏览器会正确使用filename
标题的Content-Disposition
属性。
您最好在路径模式(例如/pdf/*
)上重新映射您的servlet,然后将所需的文件名直接附加到应该返回PDF的URL中
<a href="pdf/TemporaryVerification.pdf">
如果需要,您可以按如下方式获取servlet中的文件名部分:
String filename = request.getPathInfo().substring(1); // TemporaryVerification.pdf
// ...