批量下载文件,用程序打成zip压缩包在下载

前台传来要下载的url数组

@RequestMapping(value = "/download",method = RequestMethod.POST)
public void download(HttpServletResponse response,String [] filePathList) throws IOException{  // 通过response对象获取OutputStream流  OutputStream os = response.getOutputStream();  //获取zip的输出流  ZipOutputStream zos = new ZipOutputStream(os);  //定义输入流  BufferedInputStream bis = null;  try {  //循环url数组  for (String path : filePathList) {  //通过url地址获取连接  URL url = new URL(path);  HttpURLConnection conn = (HttpURLConnection) url.openConnection();  //设置超时间为3秒     conn.setConnectTimeout(3*1000);    //防止屏蔽程序抓取而返回403错误    conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");    conn.setRequestMethod("GET");  conn.connect();  //通过连接得到输入流    InputStream inputStream = conn.getInputStream();   //设置压缩后的zip文件名  String sourceFilePath = "zip.zip";  //设置content-disposition响应头控制浏览器弹出保存框,若没有此句则浏览器会直接打开并显示文件。  //中文名要经过URLEncoder.encode编码,否则虽然客户端能下载但显示的名字是乱码  response.setHeader("content-disposition", "attachment;filename="   + URLEncoder.encode(sourceFilePath, "UTF-8"));  byte[] buf = new byte[8192];  int len = 0;  //创建ZIP实体,并添加进压缩包    ZipEntry zipEntry = new ZipEntry(fileName);    zos.putNextEntry(zipEntry);    bis = new BufferedInputStream(inputStream, 1024*10);    while ((len = bis.read(buf)) > 0) {  //使用OutputStream将缓冲区的数据输出到客户端浏览器  zos.write(buf, 0, len);  }    }  } catch (Exception e) {  e.printStackTrace();  }finally{  if(null != zos) zos.close();  if(null != bis) bis.close();  }
}            

批量下载文件,打包成zip压缩包相关推荐

  1. Java实现文件批量下载,打包成zip压缩包

       最近在做一个管理系统的项目,需要实现一个功能,就是批量下载文件,并打包成zip压缩包.    前端通过POST请求传来要下载的文件列表,Java代码实现如下: import java.io.Bu ...

  2. react——利用jszip实现文件批量下载并打包成zip文件

    本文章主要记录利用jszip实现文件批量下载图片,文档.mp3,视频(MP4)等文件,一般而言前端实现下载功能一般都是通过a链,这在下载单个文件的场景很实用,但如果是批量下载很多个文件,同样也可以用a ...

  3. 图片批量下载并打包成zip

    需要引入两个js文件: <script src="__STATIC__/js/FileSaver.js"></script> <script src= ...

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

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

  5. 【java】 文件批量下载并压缩为zip压缩包

    [java] 文件批量下载并压缩为zip压缩包 java常用的压缩技术 java中常见实现压缩与解压 业务场景 代码实现 注意点 java常用的压缩技术 常见的压缩格式有很多种,例如:zip.rar. ...

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

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

  7. think.class.php下载,PHP_ThinkPHP实现将本地文件打包成zip下载,首先,将FileToZip.class文件放到T - phpStudy...

    ThinkPHP实现将本地文件打包成zip下载 首先,将FileToZip.class文件放到ThinkPHP/Extend/Library/ORG/Util/文件夹中,FileToZip.class ...

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

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

  9. java实现word下载及打包成zip下载(单个文件、多个文件)

    最近,本人需求将实现word下载以及打包成zip进行下载(单个文件.多个文件)将最近自己学习到的知识点分享给大家 1.实现word模板(三个步骤,最终需要的是upload.ftl) 大家可以参考这篇文 ...

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

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

最新文章

  1. linux什么是实时调度,Linux中的实时调度
  2. 深度学习模型之各种caffe版本(Linux和windows)的网址
  3. golang 开源代理
  4. php 接收文件 错误代码3,php上传文件错误代码3
  5. javaserver_集成Spring和JavaServer Faces:改进的模板
  6. iOS Core ML与Vision初识
  7. 图灵奖公布!计算机图形学先驱 Hanrahan 和 Catmull 获奖,祝贺两位好莱坞 3D 动画大片技术元老...
  8. GPS 的物理数学原理
  9. ASP.NET中常用的优化性能的方法(转贴,Icyer收集整理)
  10. 2015阿里秋招当中一个算法题(经典)
  11. HDU4405(期望DP)
  12. 前端测试框架Jest系列教程 -- 简介
  13. 数学分析(一)数列与数列极限
  14. dorado java_dorado事件
  15. Cadence orcad 批量设置原理图标题栏
  16. 移动端开发使用rem时动态设置html的字体大小
  17. 服务器该不该选SSD硬盘储存?
  18. Webug 4.0下载地址
  19. 一步步写嵌入式操作系统 arm相关知识
  20. 鱼香ROS网站上线|一行代码安装ROS/ROS2/解决rosdep问题|小鱼脚本

热门文章

  1. TCP/IP系列之数据链路层
  2. log4j日志信息配置文件详解
  3. 判断虚拟键盘是删除键的方法
  4. [ 漏洞复现篇 ] Apache Shiro 身份认证绕过漏洞 (CVE-2022-32532)
  5. linux下做笔记的软件下载,Write一款梦幻般的Linux手机笔记应用程序
  6. 腾讯视频弹幕屏蔽js
  7. CAD二次开发(c#)利用选择集获取标注尺寸
  8. 随时随地开展绘图工作,还得靠CAD在线!
  9. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java小微企业ERP软件物料需求模块设计55ss9
  10. 敏捷结果30天之第十一天:高效能、慢生活