再来一篇

/***  压缩并导出文件* @param zipPath 压缩文件临时路径  路径最后不要有 /* @param zipName 压缩为文件名 **.zip* @param createFilesPath 需要压缩的文件列表* @param request* @param response* @return* @throws IOException*/public boolean downloadZip(String zipPath,String zipName,List<String>createFilesPath,HttpServletRequest request,HttpServletResponse response) {//String tmpFileName = "report.zip";  byte[] buffer = new byte[1024];  // String strZipPath = COM_REPORT_PATH+"/"+user.getOid()+"/"+report.getOid()+"/"+tmpFileName;  String strZipPath=zipPath+"/"+zipName;try {  File tmpZip=new File(zipPath);if (!tmpZip.exists())tmpZip.mkdirs();File tmpZipFile = new File(strZipPath);if (!tmpZipFile.exists())tmpZipFile.createNewFile();ZipOutputStream out = new ZipOutputStream(new FileOutputStream(strZipPath));  // 需要同时下载的两个文件result.txt ,source.txt  File[] file1 =new File[createFilesPath.size()] ;for(int i=0;i<createFilesPath.size();i++){file1[i]=new File(createFilesPath.get(i));}for (int i = 0; i < file1.length; i++) {  FileInputStream fis = new FileInputStream(file1[i]);  out.putNextEntry(new ZipEntry(file1[i].getName()));  //设置压缩文件内的字符编码,不然会变成乱码  out.setEncoding("UTF-8");  int len;  // 读入需要下载的文件的内容,打包到zip文件  while ((len = fis.read(buffer)) > 0) {  out.write(buffer, 0, len);  }  out.closeEntry();  fis.close();  }  out.close();  this.downloadFile(zipPath,zipName,response);  } catch (Exception e) {  e.printStackTrace();}  return true;  }/*** 以压缩文件导出* @param fileName* @param filePath* @param response*/public void downloadFile(String filePath,String fileName,HttpServletResponse response){  response.setCharacterEncoding("utf-8");  // response.setContentType("application/octet-stream");  try {File file=new File(filePath,fileName);// 以流的形式下载文件。BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file.getPath()));byte[] buffer = new byte[fis.available()];fis.read(buffer);fis.close();// 清空responseresponse.reset();OutputStream toClient = new BufferedOutputStream(response.getOutputStream());response.setContentType("application/octet-stream");response.setHeader("Content-Disposition", "attachment;filename=" + fileName);toClient.write(buffer);toClient.flush();toClient.close();} catch (IOException ex) {ex.printStackTrace();}}  

spring mvc java 把多文件打包成zip,并下载相关推荐

  1. Java将多个文件打包成ZIP并下载

    Java将多个文件打包成ZIP并下载 需求是多个文件需要同时打包成zip压缩文件并下载到本地,首先我需要的是知道下载文件的路径.我有一个专门的sys_file_info表,表中有对应的文件路径.业务表 ...

  2. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储 版权声明:本文为博主原创 ...

  3. php 复制文件夹并压缩到最小_php压缩多个文件打包成zip并下载到本地

    完成时间:2018-01-03 展现方式:整个相册图片的导出(下载到本地)直接在页面上生成下载没有什么另存为什么默认路径 基本步骤: 1.用户点击按钮跳转到对应相册导出的方法 ---->2.在方 ...

  4. Java如何将文件打包成Zip、Rar压缩包

    目录 1.将单个文件打成压缩包 2.将E:\zip目录打成压缩包 1.将单个文件打成压缩包 需求: 将E盘下的 test.xls 文件打成压缩包保存到E盘目录下的 target.zip 文件中 代码实 ...

  5. SpringBoot将文件打包成zip存放或导出

    目录 前言 环境准备 将文件打包成Zip存放 代码 测试 将文件打包成zip并导出 代码 测试 结尾 前言 相信各位看官在工作中都会遇到过要把多个文件打包成一个压缩文件然后导出,或者将文件打包成Zip ...

  6. java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){String filePath ="";//文件路径Str ...

  7. java 把文件打包成zip_java 文件流的处理 文件打包成zip

    1.下载文件到本地 public void download(HttpServletResponse response){ String filePath ="";//文件路径 S ...

  8. 文件打包成zip类型文件

    研究了一下,如何把文件打包成Zip文件. 下面是我经历的进程: 1. 首先看到了微软本身的打包代码,是通过System.IO.Packaging 命令空间来进行打包,你可以点击以上的链接来查看其如何打 ...

  9. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

最新文章

  1. python空值填充_pandas | DataFrame基础运算以及空值填充
  2. [Android]Android端ORM框架——RapidORM(v1.0)
  3. DDD峰会归来话DDD
  4. jsp 4种常用语法3个编译指令7个动作指令
  5. kafka0.9 java commit_kafka提交offset失败
  6. mysql udf http.so_MySQL-UDF-HTTP + Express + WebSocket 实现数据库推送
  7. 北大计算机博进高校,他是北大第一位博士,留校任教却连做三件“傻事”,博导都没评上...
  8. [洛谷P3292] [SCOI2016]幸运数字
  9. oracle cache table,Multiple-table cache group配置
  10. Java——Set 集合
  11. linux新建java文件夹删除不了怎么办_Linux无法删除文件夹 Device or resource busy
  12. 从零基础入门Tensorflow2.0 ----三、11. tf.GradientTape与tf.keras结合使用
  13. Python-《转载-Github上的python开源项目》
  14. crmeb多商户1.7.3
  15. Android多媒体相关框架
  16. python海龟怎样写字又快又好看_python海龟画图
  17. 智能人物画像综合分析系统——Day3
  18. 【073】首届工控中国大会|翼辉为自主生态共建发声
  19. Tornado笔记——用Tornado搭建假单统计考勤系统(八)
  20. 美团招聘-测试开发工程师

热门文章

  1. 非空验证方法(多值)和BindingResult提示验证信息
  2. 调用restful接口_SSM实现RESTFul风格的CURD操作
  3. Typecho 支持黑暗模式的后台主题插件
  4. ajax-form表单快速传递参数
  5. 深入理解CSS权重(优先级)
  6. php实现url伪静态化,全过程详解
  7. 自定义字体 (暂不支持中文)
  8. php代码加密 (php,decode)
  9. 102.二叉树的层序遍历
  10. LeetCode 524. Longest Word in Dictionary through Deleting