思路

1.通过id查询可以查询出图片表的图片路径

2.在配置文件中查找图片上传的路径

 //下载@RequestMapping(value = "/download",method = RequestMethod.GET )@RequiresPermissions("orderDetail:download")public void download(HttpServletResponse response, HttpServletRequest request,Integer orderDetailId){//响应头的设置response.reset();response.setCharacterEncoding("utf-8");response.setContentType("multipart/form-data");//设置压缩包的名字//解决不同浏览器压缩包名字含有中文乱码的问题HttpSession session = request.getSession();String billname ="workerCard";String downloadName=billname+".zip";//返回客户端浏览器的版本号、类型String agent = request.getHeader("USER-AGENT");try {//针对IE或者以IE为内核的浏览器处理if (agent.contains("MSIE")||agent.contains("Trident")){downloadName=java.net.URLEncoder.encode(downloadName, "UTF-8");}else {downloadName=new String(downloadName.getBytes("UTF-8"),"ISO-8859-1");}}catch (Exception  e) {e.printStackTrace();}response.setHeader("Content-Disposition","attachment;fileName=\"" + downloadName + "\"");//设置压缩流ZipOutputStream zip=null;try {zip=new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));//设置压缩方法zip.setMethod(ZipOutputStream.DEFLATED);} catch (IOException e) {e.printStackTrace();}DataOutputStream os=null;//从数据库中取出要下载的图片路径List<GoodsCustomizationImage> images = goodsCustomizationImageService.selectImgUrl(orderDetailId);System.out.println(orderDetailId);for (GoodsCustomizationImage image : images) {System.out.println(image);String filename=image.getLocalUrl();String[] split = filename.split(",");for (String s : split) {System.out.println(s);String modipath = path+s;File file = new File(modipath);System.out.println(file);if (file.exists()){//添加ZipEntry,并ZipEntry中写入文件流//这里,加上i是防止要下载的文件有重名的导致下载失败try {zip.putNextEntry(new ZipEntry(file.getName()));os=new DataOutputStream(zip);InputStream is = new FileInputStream(file);byte[]b= new byte [1024];int length =0;while ((length=is.read(b))!=-1){os.write(b,0,length);}is.close();//zip.closeEntry();} catch (IOException e) {e.printStackTrace();}}}//关闭流try {if (os!=null){os.flush();os.close();zip.close();}else {break;}} catch (IOException e) {e.printStackTrace();}}}

参考地址:java项目(ssm框架)实现批量下载图片并打包压缩为zip文件 - Somuns的个人空间 - OSCHINA - 中文开源技术交流社区

java批量图片下载+打包成zip格式相关推荐

  1. 多文件批量下载打包成.zip

    多文件批量下载打包成.zip //下载文件打包成zip压缩包@GetMapping("/zip/{id}")public void zip(@PathVariable(" ...

  2. Java向将指定文件(含文件列表)或者指定路径下目录打包成zip格式

    Java向将指定文件(含文件列表)或者指定路径下目录打包成zip格式 运行环境 pom依赖 测试方法 测试效果 运行环境 1.springboot 2.2.x 2.maven 3.5.4 pom依赖 ...

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

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

  4. php 生成zip并下载,PHP 实现文件打包成zip格式并下载

    PHP 文件打包并下载 有个这样的需求,将多个文件打包成zip格式并下载到本地 可根据 ZipArchive这个类来实现此功能 我自己也研究了一下,然后把搞出来了 ,经测试绝对好用 话不多说直接上代码 ...

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

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

  6. java文件批量下载打包成zip

    1.首先html页面获取当前需要下载文件的id集合将转成字符串形式传递到后台. ................ 2 .下面就是获取字符串之后的批量下载/*** 多文件批量下载压缩成zip**root ...

  7. EasyExcel3.0.5 导出多个sheet,批量下载打包成ZIP压缩包

    多sheet导出并批量下载附件 前言 源码 代码实现 Controller 接口类 实现类 (重中之重) 实现类重点强调 测试 结语 前言 最近浏览语雀社区官网,里面有一篇 easyexcel 里面 ...

  8. spring mvc java 把多文件打包成zip,并下载

    再来一篇 /*** 压缩并导出文件* @param zipPath 压缩文件临时路径 路径最后不要有 /* @param zipName 压缩为文件名 **.zip* @param createFil ...

  9. java 批量图片下载

    思路 1.根据数据库的图片存储表进行查询然后拿到图片路径 2.然后看项目中上传图片的路径进行下载 代码 @RequestMapping(value = "/download",me ...

  10. java 批量下载图片并打包成zip压缩包

    项目需求: 对接第三方接口时,因为数据中存储的是图片链接,第三方审核时需要把所有图片以zip压缩包的方式传入到他们ftp服务中. 提示:以下是本篇文章正文内容,下面案例可供参考 话不多说直接看代码,案 ...

最新文章

  1. 强强联合!Papers with Code携手arXiv,上传论文、提交代码一步到位
  2. 合肥python培训-合肥Python测试开发全栈核心课程
  3. Windows环境下maven 安装与环境变量配置
  4. JQuery-学习笔记01【基础——JQuery基础】
  5. Leetcode:search_insert_position
  6. linux下安装phantomjs
  7. leetcode —— 752. 打开转盘锁
  8. spring框架中Bean的基本属性及调用外部properties等配置文件的方法介绍
  9. 计算机编程学英语词汇,计算机编程英语词汇大全
  10. SAP License:如何预防企业“癌症”
  11. 软件事务内存导论(五)创建嵌套事务
  12. 教育部建议采纳:给予导师决定硕博士能否毕业的自主权!
  13. Tomcat Linux下自启动
  14. JavaScript要点 (一) 变量-作用域
  15. web前端开发技术的优化策略
  16. 基于数字孪生高校可视化的综合运营管理平台
  17. 网络通信协议层的七个部分
  18. GooglePlay商店如何优化
  19. 新加坡国立计算机硕士转专业,【NUS计算机硕士毕业就业】 - 院校新闻 - 新加坡国立大学(Nus)...
  20. CSGO DIY-小地图修改

热门文章

  1. Infopath2007表单转化成word2007
  2. 基于Matlab的数字水印设计—基于DCT域的水印算法实现
  3. IntelCPU后缀含义
  4. 阿里巴巴價值觀(企業文化),江湖传说——阿里巴巴土话102句完整版
  5. 【阿里102句土话集锦】菜鸟必备
  6. 【LeetCode - 马化腾】第一次看到马总的代码
  7. EXIT: Extrapolation and Interpolation-based Neural Controlled Differential Equations for Time-series
  8. grub 加载软盘镜像
  9. 4.人工智能时代下的大数据
  10. 37 一次获取redis连接阻塞引起的 Thread pool is EXHAUSTED