java 在线打开pdf


jsp页面就只需要写一个a标签跳转即可

或者写一个js方法

var path = "e:\\323\test.pdf";

window.location.href = encodeURI("bqPrisonerAction!downlaod.action?pathHeqh="+ path);


你也可以window.open(url);  弹出一个页面的方式


下面的代码如果是中文会出现乱码,修改成reponse要修改下编码格式:

 

吧此行代码response.setContentType(u.openConnection().getContentType());

修改成下面这行即可

 response.setContentType("text/html;charset=UTF-8");

2、这句代码中的filename可以自己随便定义一个

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

自己设置编码之后,

 URL u = new URL("file:///" + filepath); 这句代码就可以去掉了
 //打开pdf
		public void downlaod(){
			try{
					String filepath = pathHeqh;//这是前台传过来的参数,你可以通过request.getParam。。方法获取,或者在action中定义此参数,然后getset方法添加即可
					filepath = new String(filepath.getBytes("iso-8859-1"),"UTF-8");  
					//filepath = java.net.URLDecoder.decode(filepath, "UTF-8");  
				  	File f = new File(filepath);
			        if (!f.exists()) {
			            response.sendError(404, "File not found!");
			            return;
			        }
			        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
			        byte[] buf = new byte[1024];
			        int len = 0;


			        response.reset(); // 非常重要
		            URL u = new URL("file:///" + filepath);
		            response.setContentType(u.openConnection().getContentType());
		            response.setHeader("Content-Disposition", "inline; filename=" + f.getName());
		            // 文件名应该编码成UTF-8
			        OutputStream out = response.getOutputStream();
			        while ((len = br.read(buf)) > 0)
			            out.write(buf, 0, len);
			        br.close();
			        out.close();
			}catch(Exception e){
				e.printStackTrace();
			}
		}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值