博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
资源下载与统计
阅读量:6696 次
发布时间:2019-06-25

本文共 1509 字,大约阅读时间需要 5 分钟。

如果用servlet返回文件流,用的是机房宽带

 

ServletOutputStream out = response.getOutputStream();

String filepath = request.getRealPath("/")+"uploadfiles/";
if(null == request.getParameter("sonFilePath")){
System.out.println("无参数");
return;
}
if(null == request.getParameter("fileName")){
System.out.println("无参数");
return;
}
String sonFilePath = new String(request.getParameter("sonFilePath").getBytes("ISO8859_1"),"GB2312").toString();
String filename = new String(request.getParameter("fileName").getBytes("ISO8859_1"),"GB2312").toString();
System.out.println("DownloadFile filepath:" + filepath+sonFilePath);
System.out.println("DownloadFile filename:" + filename);
File file = new File(filepath +sonFilePath+"/"+ filename);
if(!file.exists()){
System.out.println(file.getAbsolutePath()+"文件不存在");
return;
}
//读取文件流
FileInputStream fileInputStream = new FileInputStream(file);
//下载文件
//设置响应头和下载保存的文件名
if(filename != null && filename.length() >0){
// response.setContentType("application/x-msdownload");
response.setContentType("application/zip");
response.addHeader("Content-Disposition", "attachment; filename=" + new String(filename.getBytes("gb2312"),"iso8859-1") + "");
response.addHeader("Content-Length", "" + file.length());
if(null != fileInputStream){
int filelen = fileInputStream.available();//filelen/1000k
//文件太大时内存不能一次读出,要循环
byte a[] = new byte[filelen];
fileInputStream.read(a);
out.write(a);
}
fileInputStream.close();
out.close();
}

 

 

如果用servlet 统计并跳转到资源地址 可以使用cdn设置好的宽带。减少机房压力。

 

response.sendRedirect(filePath);

转载地址:http://expoo.baihongyu.com/

你可能感兴趣的文章
swift中使用Objective C代码
查看>>
iOS 中多音频处理
查看>>
Java 设计模式之命令模式
查看>>
nginx配置反向代理或跳转出现400问题处理记录
查看>>
《QTP自动化测试权威指南(第二版)》—第2章2.3节搜索标签(Search Tab)
查看>>
Js针对window窗体大小设置
查看>>
dom4j的生成xml并格式化输出
查看>>
企业管理过程信息化自助开发平台架构研究与应用
查看>>
TDBadgedCell
查看>>
我的友情链接
查看>>
思科路由器配置命令一览表
查看>>
《数据库系统概念》5-连接、视图和事务
查看>>
PL/SQL使用技巧收集
查看>>
skipped when looking for precompiled header
查看>>
easymybatis中字段自动填充
查看>>
java 电子商务云平台b2b b2c o2o springmvc+mybatis+spring cloud+spring boot
查看>>
如何通过ad组策略让domain users用户可以远程桌面?
查看>>
线程池的使用
查看>>
vb的winio模拟键盘鼠标部分参考代码
查看>>
等待多个并发事件完成的模型
查看>>