//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();
}
}
}
分享到:
相关推荐
实例145 文件的加密/解密操作 217 实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的...
实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...
实例145 文件的加密/解密操作 217 实例146 复制图片 219 实例147 随机读写Java类文件 221 第3篇 Java面向对象编程 第8章 面向对象(教学视频:72分钟) 226 8.1 类 226 实例148 简单的通讯录类 ...
实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了...
实例231 模仿网络快车下载工具下载文件 428 13.2 多线程的同步与互斥 436 实例232 多线程同步方法的实例 436 实例233 ATM存取一体机(线程同步互斥) 437 实例234 我的钱哪里去了 440 实例235 门锁打不开了(死锁) ...
本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型...
首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程。如上图所示的 Hello java文件。 2:编译 写完Jaa代码后,机器并不认识我们写的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用户自定义异常...
HybridApp 一种可以下载的Native App,其用户界面的全部或者部分元素在嵌入式浏览器组件(WebView之类的)里面运行 优雅降级 一开始就构建站点的完整功能,然后针对浏览器测试和修复。认为应该针对那些最高级、最...
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 从客户端...
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 从客户端...
• sample27.htm 捕捉异常(捕捉使用throw语句抛出的异常) • sample28.htm 捕捉异常(捕捉JavaScript产生的异常) • sample29.htm 抛出不同的异常 • sample30.htm 抛出不同的...
第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语句块之间...
IIS有默认的端口设置,只要稍有计算机知识的人都会记得这些端口的,要破解的话就十分的方便,所以尽量不要使用21这个默认端口号,并启用日志,以便FTP服务出现异常时检查。 [编辑本段]对IIS服务的远程管理 三、对...
注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。 no device —— 没有设备/模拟器连接。 以上输出显示当前已经连接了...
1. 介绍.........................................................................................................18 1.1. 关于本书..........................................................................
1. 介绍.........................................................................................................18 1.1. 关于本书...........................................................................