Java文件下载获取浏览器取消操作异常

//JSP页面调用

function downFile(url,filename){

var encodeURImodelUrl = encodeURI(encodeURI(url));

    var urls = "pltWcsjAction_downFiles.do?downFileName="+filename+"&downFilePath="+encodeURImodelUrl+"";

    location.href = urls;

}

 

 

//java action方法

 

private String downFileName;

private String downFilePath;

 

public void downFiles(){

if(!StringUtil.nullString(downFileName,"").equals("")

&& !StringUtil.nullString(downFilePath,"").equals("")){

String root = ServletActionContext.getRequest().getRealPath("/");

downFile(root+downFilePath,downFileName);

}

}

public void downFile(String path,String filename){

if(StringUtil.nullString(filename,"").equals("") ||

StringUtil.nullString(path,"").equals("") ||

 !new File(path).exists()){

return;

}

HttpServletResponse response = ServletActionContext.getResponse();

 BufferedInputStream bis = null;   

   BufferedOutputStream bos = null;   

   try{   

     File fileInstance = new File(path);   

     if (fileInstance.exists()){

          bis = new BufferedInputStream(new FileInputStream(fileInstance));   

          bos = new BufferedOutputStream(response.getOutputStream());   

          byte[] buff = new byte[2048];   

          response.setContentType("APPLICATION/OCTET-STREAM; charset=UTF-8");   

          response.setHeader("Content-Disposition", "attachment; filename=\"" + java.net.URLEncoder.encode(filename,"utf-8") + "\"");   

          int bytesRead;   

          while (-1 != (bytesRead = bis.read(buff, 0, buff.length))){   

              bos.write(buff, 0, bytesRead);   

          }

        

      }    

   }catch (Exception e){   

    System.out.println("文件下载处理,浏览器取消文件下载!");

    //e.printStackTrace();

   

   }   

   finally{   

 

      if (bos != null){   

        IOUtils.closeQuietly(bos);   

      }   

      if (bis != null){   

        IOUtils.closeQuietly(bis);   

      }

       try {

       

        bos.close();  

bis.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

   

  }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值