【问题标题】:Naming my inline pdf命名我的内联 pdf
【发布时间】:2012-11-15 17:25:08
【问题描述】:

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

【问题讨论】:

    标签: java pdf servlets


    【解决方案1】:

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

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

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

    如有必要,您可以按如下方式获取 servlet 中的文件名部分:

    String filename = request.getPathInfo().substring(1); // TemporaryVerification.pdf
    // ...
    

    【讨论】:

      猜你喜欢
      • 2013-12-11
      • 2013-07-08
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多