关于本地文件zip打包返回给浏览器下载,这边有个很好的例子读取本地文件打包返回给浏览器下载,基本能解决的相关问题。而最近因为项目原因,打包返回给浏览器下载的是存储在fdfs上文件,然后对此代码修改了下,解决了项目需求。所以就记录下,以便后续使用。

public void getAllFile(HttpServletResponse response,String callId) throws IOException{String zipName = "file.zip";//获取符合下载条件的实体列表,根据自己的需求定义List<FileBean> fileList = getFileList(callId);response.setContentType("APPLICATION/OCTET-STREAM");  response.setHeader("Content-Disposition","attachment; filename="+zipName);ZipOutputStream out = new ZipOutputStream(response.getOutputStream());try {for(FileBean fileBean: fileList){if(null==fileBean){continue;}//只改变了以下这个方法即可ZipUtils.doZip(fileBean.getFilePath(),fileBean.getFileName(), out);response.flushBuffer();}} catch (Exception e) {e.printStackTrace();}finally{out.close();}}

这边就ZipUtils工具类里的doZip()方法略微改变了下,如下:

public static void doZip(String inFile, String entryName,ZipOutputStream out)throws IOException {URL urlfile = null;HttpURLConnection httpUrl = null;BufferedInputStream bis = null;
//      String entryName = null;
//      if (!"".equals(dir)) {//          entryName = dir + "/" + inFile.getName();
//      } else {//          entryName = inFile.getName();
//      }ZipEntry entry = new ZipEntry(entryName);out.putNextEntry(entry);int len = 0;byte[] buffer = new byte[1024];
//      FileInputStream fis = new FileInputStream(inFile);
//      BufferedOutputStream bos = null;urlfile = new URL(inFile);httpUrl = (HttpURLConnection) urlfile.openConnection();httpUrl.connect();try {bis = new BufferedInputStream(httpUrl.getInputStream());} catch (FileNotFoundException f1) {return;}while ((len = bis.read(buffer)) > 0) {out.write(buffer, 0, len);out.flush();}out.closeEntry();bis.close();httpUrl.disconnect();}

即可正确实现多文件打包下载。当然,与此类同,其他相似的存储系统文件打包下载,也可如此操作,进行打包下载,

实现多个存储服务器上文件浏览器打包下载相关推荐

  1. zip格式压缩文件并打包下载

    压缩文件并下载 zip格式压缩文件并打包下载 zip格式压缩文件并打包下载 Map<String, String> param = new HashMap<String, Strin ...

  2. 阿里云OSS文件批量打包下载

    阿里云OSS文件批量打包下载 public void downloadReport(List<String> fileNames,HttpServletResponse response) ...

  3. JAVA实现文件批量打包下载

    JAVA实现文件批量打包下载 实现 1.打包工具类的实现 /*** @author zhouxuan* @since 2019/4/19*/ public class ZipUtils {/*** @ ...

  4. ASP.NET多文件批量打包下载

    在项目实施中,遇到了将多个文件一起打包后,提供给用户下载.如:在一个ASP.NET的开发项目中,通过一个GridView选中对应行数据的CheckBox,就可以实现对选中文件的打包下载了. 在对多文件 ...

  5. JavaWeb通过http下载多个文件,打包下载,压缩下载

    JavaWeb通过http下载多个文件,打包下载,压缩下载 DownloadController.java 代码如下 package gov.zhbs.web;import gov.zhbs.util ...

  6. C# 用zip,批量压缩文件,并打包下载

    C# 用zip,批量压缩文件,并打包下载,无需产生临时文件,二种都可以 using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.Sharp ...

  7. java文件下载功能代码(单文件下载、多文件批量打包下载)——普遍适用

    一.前言   程序员在做web等项目的时候,往往都需要添加文件上传.下载.删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计 ...

  8. js多文件下载和多文件分文件夹打包下载并重命名

    js多文件下载并重命名 let list=['...'] function downloadFile(list,index){//下载文件方法if(index>=list.length){ret ...

  9. .net core 文件夹打包下载

    基于.net core api 接口返回文件流(批量打包多个文件生成zip) 防止多线程操作 上层代码如下 public class FileController : AbstractControll ...

最新文章

  1. 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
  2. 前端学习(3303):函数组件组件子组件useRef聚焦
  3. JavaScript自学笔记(1)---表单验证,let和const,JSON文件
  4. JSON(2)--- 对象
  5. MySQL高级知识(七)——索引面试题分析
  6. AS使用NDK Cmake方式依赖第三方库注意事项
  7. 如何使一个你没有源代码的DLL文件变为强命名的DLL
  8. random是python的内置函数吗_Python 内置函数math,random
  9. CpK与PpK的关系
  10. Flash遮罩动画之画轴
  11. 巧用Redis做游戏跨服排行榜
  12. 简单介绍一下树莓派zero w
  13. 【机器视觉运动控制一体机小课堂】三分钟对图像进行ROI创建
  14. 用python制作表情包图片拼接工具
  15. 对焦(调焦),变焦区别
  16. 大数据的应用场景都有哪些(交通篇)
  17. 全球与中国一体化VR摄影机市场现状及未来发展趋势2022-2028
  18. mysql存密码_存储用户ID和密码到mysql数据库的方法
  19. iRegNet3D:疾病相关SNP位点在三维调控网络中的作用
  20. 01-查看Navicat加密的数据库密码

热门文章

  1. Redis缓存的工作机制
  2. PhotoShop CC 2017软件整体界面及常规设置
  3. html按钮怎么修改大小设置吗,如何在HTML中编辑按钮大小?
  4. python爬虫框架feapder的使用简介
  5. 《统计学原理》李洁明(第六版)课后习题答案
  6. 英语----倒装句(下):部分倒装
  7. 超级IP名片:技术是当下互联网环境下竞争的基础
  8. edX (Global) 介绍
  9. 初链主网上线技术解读之-混合共识
  10. Qt中调用OpenCV函数库时Crashed问题的解决。