gpt4 book ai didi

java - 重命名由 Java Servlet 流式传输的 PDF

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:12:56 24 4
gpt4 key购买 nike

使用 XSLT、XSL-FO 和 Apache FOP 的正确组合,我能够将 PDF 发送到某个浏览器窗口。
其实我发送的文件内容如下:

           response.setContentType("application/pdf");            response.setContentLength( out.size());            response.getOutputStream().write( out.toByteArray());            response.getOutputStream().flush();

正如预期的那样,浏览器在名为“pdf”的选项卡中显示 PDF 内容,如果我将文件保存在本地,名称也默认为 pdf.pdf
如何强制文件名?

我尝试了以下方法,但没有成功:

           response.setHeader("Content-Disposition","inline; filename=" + filename + ".pdf" ); 

为了清楚起见,我想在浏览器中显示内容(而不是直接下载)

最佳答案

我找到了解决方案 here

基本上,就是改变 web.xml 中的 URL 模式
浏览器将使用任何页面名称
我曾经有过

<servlet-mapping>
<servlet-name>PDF</servlet-name>
<url-pattern>/pdf</url-pattern>
</servlet-mapping>

我替换为

<servlet-mapping>
<servlet-name>PDF</servlet-name>
<url-pattern>/pdf/*</url-pattern>
</servlet-mapping>

使用 http://wherever/pdf/filename.pdf?param1=va1... 调用 servlet 将文件名更改为“filename.pdf”

关于java - 重命名由 Java Servlet 流式传输的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14448846/

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