我正在尝试使用servlet和jsp在浏览器窗口中打开pdf文件。用一个按钮单击jsp,我正在调用一个servlet,然后通过该servlet尝试在浏览器上显示pdf文件。
这是我正在尝试的代码:
jsp文件:
<form action="DisplayPDF" method="post" class="register">
<p><button type="submit" class="button">Click To Add »</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();
请让我知道我在哪里做错了。提前致谢。
您正在做的是在文件上打开OutputStream"D:\\Invoice\\Invoice_1094.pdf"
并获得对servlet响应作者的引用,但实际上从来没有给它们写任何东西。
我假设您要提供"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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句