0

我在 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。虽然当我尝试将它作为附件时,它的名称是正确的。

4

1 回答 1

1

此行为特定于 IE 浏览器。它使用 URI 路径的最后一部分作为下载资源的默认名称。更理智的浏览器会为此正确使用标头的filename属性。Content-Disposition

您最好在路径模式上重新映射您的 servlet /pdf/*,然后将所需的文件名直接附加到 URL 中,该 URL 应该像这样返回 PDF

<a href="pdf/TemporaryVerification.pdf">

如有必要,您可以在 servlet 中获取文件名部分,如下所示:

String filename = request.getPathInfo().substring(1); // TemporaryVerification.pdf
// ...
于 2012-11-15T17:27:48.507 回答