关于本地文件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. 【OpenCV 4开发详解】图像LUT查找表
  2. 提高DB2数据库Web程序性能的两条规则
  3. 【bzoj5064】B-number 数位dp
  4. 避免强光的一些注意点
  5. [react] Mern和Yeoman脚手架有什么区别?
  6. C++:09---类静态成员、类常量成员
  7. c++ 显示三维散点图_Python数据可视化,Matplotlib绘制“散点图”的两种方法!
  8. 关于@Mapper注解的几个问题
  9. 你代码里的 ThreadLocalRandom,真的安全吗?
  10. python--DenyHttp项目(1)--socket编程:客户端与服务器端
  11. 借呗还款日都是一样吗?
  12. indesign软件教程,如何将文本格式保存为样式?
  13. Windows Server 2008 R2的DHCP高可用
  14. 【CAD】机械类制图实用功能总结
  15. 周记录学习总结<大杂烩>
  16. NiFi用户指南文档分析(2)
  17. 利用word2vec训练词向量
  18. ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透
  19. ZJM 与纸条(KMP算法)
  20. 数电和计算机网络,数电计算机网络试卷2010A.doc

热门文章

  1. 展频(SSC)相关知识
  2. 50000字,数仓建设保姆级教程,离线和实时一网打尽(理论+实战) 下
  3. 干货 | 什么是FOC?一文带你看BLDC电机驱动芯片及解决方案
  4. LaTeX常用格式学习笔记
  5. java要基础数学和英语吗,2022最新
  6. t检验、Wilcoxon 符号秩检验、Mann-Whitney 秩和检验 Python实现
  7. 如何两步完成网页到Android App转换
  8. There is no getter for property named 'DEPARTMENT_ID' in 'class com.sccy.hr.model.RewardsPunishment'
  9. unity-NPR-卡通渲染
  10. 图形学笔记(五)——曲线