gpt4 book ai didi

java - PDF 文件无法使用 servlet 和 jsp 在浏览器中打开

转载 作者:行者123 更新时间:2023-12-01 11:09:02 25 4
gpt4 key购买 nike

我正在尝试使用 servlet 和 jsp 在浏览器窗口中打开 pdf 文件。通过单击 jsp 上的按钮,我调用一个 servlet,然后通过该 servlet 尝试在浏览器上显示 pdf 文件。

这是我正在尝试的代码:

jsp文件:

<form action="DisplayPDF" method="post" class="register">




<p><button type="submit" class="button">Click To Add &raquo;</button></p>


</form>

doPost 方法中的 servlet 部分:

response.setContentType("application/pdf");

PrintWriter out = response.getWriter();
response.setHeader("Content-Disposition", "inline; filename=bill.pdf");
FileOutputStream fileOut = new FileOutputStream("D:\\Invoice\\Invoice_1094.pdf");
fileOut.close();
out.close();

请让我知道我到底在哪里做错了。提前致谢。

最佳答案

您正在做的是在文件 "D:\\Invoice\\Invoice_1094.pdf" 上打开一个 OutputStream 并获取对 servlet reaponse 编写器的引用,但实际上从未向两者写入任何内容其中。

我假设您想要提供驻留在您的服务器上的文件“D:\\Invoice\\Invoice_1094.pdf”。为此,您必须读取其内容并将它们写入 servlet 的输出流。请注意,我使用的是 servlet 的 OutputStream,而不是它的 Writer。

response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=bill.pdf");
OutputStream out = response.getOutputStream();
try (FileInputStream in = new FileInputStream("D:\\Invoice\\Invoice_1094.pdf")) {
int content;
while ((content = in.read()) != -1) {
out.write(content);
}
} catch (IOException e) {
e.printStackTrace();
}
out.close();

关于java - PDF 文件无法使用 servlet 和 jsp 在浏览器中打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32587514/

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