我如果要直接在浏览器(系统已经装了adobe reader)上看pdf文件,如我的访问路径为 http://localhost:8888/myProj/pdf/test.pdf,网页上直接显示test.pdf文件的内容,那我的test.pdf是不是必须放到WEBINFO目录下啊?或者文件不放到WEBINFO下,用流来做,把某个文件夹下的文件用流的形式读出来,然后设置"application/pdf",将其显示到浏览器上,这样可行吗?我在读取pdf文件时出了些问题,难道读取pdf文件非要用PDFBox吗?为什么我直接用FileInputStream读会都是这种格式?
0000037528 00000 n
0000037654 00000 n
0000037773 00000 n
0000037891 00000 n
0000038009 00000 n
0000038135 00000 n
0000038986 00000 n
0000039103 00000 n
0000039220 00000 n
0000039337 00000 n
0000039456 00000 n
0000037528 00000 n
0000037654 00000 n
0000037773 00000 n
0000037891 00000 n
0000038009 00000 n
0000038135 00000 n
0000038986 00000 n
0000039103 00000 n
0000039220 00000 n
0000039337 00000 n
0000039456 00000 n
解决方案 »
- 求救! jar包发布成windows服务问题,在线等待解答!急急急。
- 各位大哥,帮小弟检查错误,500分给大家
- struts2里怎么配置自定义常量
- 在AIX5.3服务器上运行Tomcat,控制台和日志中出现乱码。求高手帮忙,谢谢。
- tomcat启动错误
- org.jdom.Element,addContent的时候“<”和“>”怎么处理?
- hibernate 问题!!!
- 各位有人真正用WEB SERVICES/SOA/BPEL这样的东西搭一个大系统出来的吗
- jbuilder里的file->new->test怎么用 谢谢
- 关于struts配置的问题
- 求SSH教材
- tomcat运行一会项目就会死掉...很郁闷的问题
web.xml里面配置下
<mime-mapping>
<extension>pdf</extension>
<mime-type>application/pdf</mime-type>
</mime-mapping>
servlet内容,图个方便 用channel了 你换成outputStream一样实现的,Firefox和ie测试都没问题
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ response.setContentType("application/pdf;charset=utf-8");
OutputStream out = response.getOutputStream();
FileInputStream inputStream = new FileInputStream("D:/a.pdf");
FileChannel channel = inputStream.getChannel(); WritableByteChannel channel_out = Channels.newChannel(out);
channel.transferTo(0,channel.size(),channel_out);
out.flush();
out.close();
}
pdf的编码特殊,不能使用一般的解析方式,应按照固有的pdf编码进行解码。
地址应该为webapps/myProj/pdf/test.pdf