`

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
分享到:
评论

相关推荐

    java范例开发大全源代码

     实例145 文件的加密/解密操作 217  实例146 复制图片 219  实例147 随机读写Java类文件 221  第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的...

    java范例开发大全

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...

    Java范例开发大全 (源程序)

     实例145 文件的加密/解密操作 217  实例146 复制图片 219  实例147 随机读写Java类文件 221  第3篇 Java面向对象编程  第8章 面向对象(教学视频:72分钟) 226  8.1 类 226  实例148 简单的通讯录类 ...

    Java范例开发大全(全书源程序)

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了...

    java范例开发大全(pdf&源码)

    实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型...

    Java经典入门教程pdf完整版

    首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程。如上图所示的 Hello java文件。 2:编译 写完Jaa代码后,机器并不认识我们写的Java代码,需要进行编译成为字节码,编译 后的...

    Java开发技术大全 电子版

    6.2Java的异常处理机制221 6.3异常类的层次结构222 6.3.1运行时异常222 6.3.2检查型异常223 6.3.3自定义异常224 6.4捕获和处理异常224 6.5抛出异常228 6.6try-catch-finally语句的嵌套231 6.7用户自定义异常...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最...

    精通ANDROID 3(中文版)1/2

    11.1.11 使用DownloadManager获取文件  11.2 使用Android服务  11.2.1 Android中的服务  11.2.2 本地服务  11.2.3 AIDL服务  11.2.4 在AIDL中定义服务接口  11.2.5 实现AIDL接口  11.2.6 从客户端...

    精通Android 3 (中文版)2/2

    11.1.11 使用DownloadManager获取文件  11.2 使用Android服务  11.2.1 Android中的服务  11.2.2 本地服务  11.2.3 AIDL服务  11.2.4 在AIDL中定义服务接口  11.2.5 实现AIDL接口  11.2.6 从客户端...

    《javaScrip开发技术大全》源代码

    • sample27.htm 捕捉异常(捕捉使用throw语句抛出的异常) • sample28.htm 捕捉异常(捕捉JavaScript产生的异常) • sample29.htm 抛出不同的异常 • sample30.htm 抛出不同的...

    javaSE代码实例

    第11章 异常处理——Java世界的医生 195 11.1 异常处理的基本知识 195 11.1.1 try和catch捕获异常 195 11.1.2 异常的传播过程 198 11.1.3 finally语句块的使用 199 11.1.4 try、catch及finally语句块之间...

    IIS6.0 IIS,互联网信息服务

    IIS有默认的端口设置,只要稍有计算机知识的人都会记得这些端口的,要破解的话就十分的方便,所以尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。 [编辑本段]对IIS服务的远程管理  三、对...

    adb1.0.26包含fastboot.exe

    注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。 no device —— 没有设备/模拟器连接。 以上输出显示当前已经连接了...

    Struts in Action中文版

    1. 介绍.........................................................................................................18 1.1. 关于本书..........................................................................

    struts in Action

    1. 介绍.........................................................................................................18 1.1. 关于本书...........................................................................

Global site tag (gtag.js) - Google Analytics