java后台批量下载文件压缩ZIP
@RequestMapping(value = "xxx/xxx",method = RequestMethod.POST )@ResponseBodypublic Map<String,Object> feedBackDirectMultiDownload(HttpServletRequest request,HttpServletResponse response) throws IOException{//压缩文件初始设置String path="压缩文件想要放置的路径";base_name = "zip文件名";fileZip = base_name + ".zip"; // 拼接zip文件filePath = path+"\\" + fileZip;//之后用来生成zip文件//filePathArr为根据前台传过来的信息,通过数据库查询所得出的pdf文件路径集合(具体到后缀),此处省略files = new File[fileNameArr.size()];//for(int i=0;i<fileNameArr.size();i++){files[i]=new File(fileNameArr.get(i).get("filePath"));//获取所有需要下载的pdf}// 创建临时压缩文件try {BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));ZipOutputStream zos = new ZipOutputStream(bos);ZipEntry ze = null;for (int i = 0; i < files.length; i++) {//将所有需要下载的pdf文件都写入临时zip文件BufferedInputStream bis = new BufferedInputStream(new FileInputStream(files[i]));ze = new ZipEntry(files[i].getName());zos.putNextEntry(ze);int s = -1;while ((s = bis.read()) != -1) {zos.write(s);}bis.close();}zos.flush();zos.close();} catch (IOException e) {e.printStackTrace();}//以上,临时压缩文件创建完成//进行浏览器下载 //获得浏览器代理信息final String userAgent = request.getHeader("USER-AGENT");//判断浏览器代理并分别设置响应给浏览器的编码格式String finalFileName = null;if(StringUtils.contains(userAgent, "MSIE")||StringUtils.contains(userAgent,"Trident")){//IE浏览器finalFileName = URLEncoder.encode(fileZip,"UTF8");System.out.println("IE浏览器");}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器finalFileName = new String(fileZip.getBytes(), "ISO8859-1");}else{finalFileName = URLEncoder.encode(fileZip,"UTF8");//其他浏览器}response.setContentType("application/x-download");//告知浏览器下载文件,而不是直接打开,浏览器默认为打开response.setHeader("Content-Disposition" ,"attachment;filename=\"" +finalFileName+ "\"");//下载文件的名称ServletOutputStream servletOutputStream=response.getOutputStream();DataOutputStream temps = new DataOutputStream(servletOutputStream);DataInputStream in = new DataInputStream(new FileInputStream(filePath));//浏览器下载文件的路径byte[] b = new byte[2048];File reportZip=new File(filePath);//之后用来删除临时压缩文件try {while ((in.read(b)) != -1) {temps.write(b);}temps.flush();} catch (Exception e) {e.printStackTrace();}finally{if(temps!=null) temps.close();if(in!=null) in.close();if(reportZip!=null) reportZip.delete();//删除服务器本地产生的临时压缩文件servletOutputStream.close();}return null; }
java后台批量下载文件压缩ZIP相关推荐
- java后台批量下载文件并压缩成zip下载
因项目需要,将服务器上的图片文件压缩打包zip,下载到本地桌面. 首先,前端js: function doQueryPic() {var picsDate = $("#picsDate&qu ...
- java批量下载文件为zip包
批量下载文件为zip包的工具类 package com.meeno.trainsys.util;import javax.servlet.http.HttpServletRequest; import ...
- Java实现批量下载(打包成zip)
批量下载 引言 一.前端JS发送下载请求 1.ajax无法发送下载请求 2.js发送下载请求:超链接方式 3.js发送下载请求:拼接Form表单,并提交 二.后台处理 三.结束 引言 批量下载思路,首 ...
- java后台Controller下载文件方法
/*** 导出* @param request* @param response*/@RequestMapping(value="exportInfo")public void e ...
- java oss如何下载文件_Java OSS批量下载并压缩为ZIP代码实例
这篇文章主要介绍了Java OSS批量下载并压缩为ZIP代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 /** * 批量下载为zip * @ ...
- 【java】 文件批量下载并压缩为zip压缩包
[java] 文件批量下载并压缩为zip压缩包 java常用的压缩技术 java中常见实现压缩与解压 业务场景 代码实现 注意点 java常用的压缩技术 常见的压缩格式有很多种,例如:zip.rar. ...
- JAVA 批量下载文件
最近项目有个需求,用户想对挂有附件的数据记录 实现一键下载全部附件(目前项目仅支持每次点击单条记录进行附件下载),下面记录我实现的解决方案. 项目框架基于SSM service业务实现层(impl): ...
- 多文件批量下载打包成.zip
多文件批量下载打包成.zip //下载文件打包成zip压缩包@GetMapping("/zip/{id}")public void zip(@PathVariable(" ...
- 批量下载文件,打包成zip压缩包
批量下载文件,用程序打成zip压缩包在下载 前台传来要下载的url数组 @RequestMapping(value = "/download",method = RequestMe ...
最新文章
- ABAP:SUBMIT执行其他报表并返回的数据
- golang 运算与循环
- mysql time_limit_mysql ---- limit使用方式
- java仿qq登录 界面设计,Java Swing仿QQ登录界面效果
- 95-130-340-源码-source-kafka相关-FlinkKafkaConsumer分析
- pycharm关联python ide_Python+Selenium进阶版 (一)- Python IDE工具-PyCharm的安装和使用...
- 完成端口中的单句柄数据结构与单IO数据结构的理解与设计
- vue better-scroll 下拉上拉,加载刷新
- Android-JNI开发系列《三》-异常处理
- 利用Python绘制一朵太阳花
- git 提交时报错 error: failed to push some refs to ‘https://github.com/xxx/demo.git 解决方法
- android uyghur app,App Store 上的“Uyghur Quran And Translation”
- Oracle 存储过程中自定义异常
- 湖州云计算机,湖州云存储服务_菲尔云计算
- nginx反向代理非80端口/nginx反代非80端口
- Vue3 生命周期Hooks函数与调度器Scheduler的原理
- 详解vue路由传参的三种方式
- 【计算机网络】读书笔记之《HTTP权威指南》
- 万科成都再现欺诈门,业主集体抵制狗洞式入户
- 大白话了解TCP协议:经典——三次握手数据传输 四次挥手
热门文章
- SAP模块介绍及概念介绍+CRM saleforce学习认证
- 有关于tftp32无法下载
- 智能ai文章伪原创工具-智能ai文章原创处理系统
- 在html 源代码消除消除当前页面的脚本发生错误,当前页面的脚本发生错误
- 解决:badboy 提示脚本错误 , 总是提示 “当前页面发生脚本错误”
- 2022A特种设备相关管理(电梯)考试题模拟考试题库模拟考试平台操作
- MediaCoder CUDA H.264 编码器测试报告
- Js什么是暂时性死区
- 域名一定需要备案吗?什么情况下不用备案?
- iOS 交易支付密码(多种样式选择)~ 封装demo