SpringBoot文件夹压缩下载实现示例
SpringBoot文件夹压缩下载实现示例
/*** 压缩文件夹并下载** @param map* @param response* @throws IOException*/public static void exportCompareFile(Map<String, String> map, HttpServletResponse response) throws IOException {StringBuilder tempFilePath = new StringBuilder("C:\\export\\compare").append(File.separator).append(System.nanoTime()).append(File.separator);String filePath = tempFilePath.toString();log.error("===>导出对比生成文件: {}", tempFilePath.toString());String fileNameZip = "导出物模型对比" + ".zip";List<File> files = new LinkedList<>();for (String key : map.keySet()) {boolean flag = IotCreateJsonFileUtil.createJsonFile(map.get(key), filePath, key + ".json");log.warn("===>FileUtils#exportCompareFile调用生成Json文件工具返回:" + flag);files.add(new File(filePath + key + ".json"));}// 注意,如果压缩文件名称在文件夹下已存在,则只替换压缩包内部同名文件,需要调用者保证压缩包名唯一或者文件夹唯一new ZipFile(filePath + File.separator + "导出物模型对比" + ".zip").addFiles(files);/*** response.setHeader("Content-Disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName,"UTF-8")),*/response.setHeader("content-type", "multipart/form-data");response.setContentType("application/force-download");response.setContentType("application/binary;charset=UTF-8");response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileNameZip, "UTF-8"));response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);byte[] buff = new byte[1024];//创建缓冲输入流BufferedInputStream bis = null;OutputStream outputStream = null;try {outputStream = response.getOutputStream();//这个路径为待下载文件的路径filePath = filePath + fileNameZip;log.info("压缩文件路径: filePath = {}", filePath);bis = new BufferedInputStream(new FileInputStream(new File(filePath)));int read = bis.read(buff);// 通过while循环写入到指定了的文件中while (read != -1) {outputStream.write(buff, 0, buff.length);outputStream.flush();read = bis.read(buff);}} catch (IOException e) {e.printStackTrace();} finally {if (bis != null) {try {bis.close();} catch (IOException e) {e.printStackTrace();}}if (outputStream != null) {try {outputStream.close();} catch (IOException e) {e.printStackTrace();//出现异常返回给页面失败的信息} finally {if (bis != null) {try {bis.close();} catch (IOException e) {e.printStackTrace();}}if (outputStream != null) {try {outputStream.close();} catch (IOException e) {e.printStackTrace();}}}}}}
SpringBoot文件夹压缩下载实现示例相关推荐
- 文件及文件夹 压缩 下载
使用压缩下载需要用到两个工具类 ZipUtil ,IOUtil 直接导入即可 1.方法 //附件下载@Override@Transactionalpublic Result<Object> ...
- 多文件批量压缩下载,单文件夹压缩下载
现有一个新需求,用户可选择多个文件,多文件批量压缩下载,由于传统的代码效率不高,网上查询资料,对部分内容进行了修改与整合,特此留档 以下的工具类能实现的内容有: 1:将多个文件放在一个文件夹中压缩下载 ...
- php打包压缩下载多大,php多文件打包压缩下载简单示例
调用php中内置扩展ZipArchive类可以进行文件压缩打包下载,(PHP 5>=5.2.0,PHP 7,PECL zip>=1.1.0) 调用php中内置扩展ZipArchive类可以 ...
- Java将网络图片下载至文件夹,然后将文件夹压缩成zip
思路: 第一步.创建一个文件夹A,用来存图片 第二步.将图片转为图片流写入文件夹A 第三步.将文件夹压缩成ZIP 下面上代码 public class FileZipUtils {public sta ...
- Java实现将文件或者文件夹压缩成zip
Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...
- springboot文件上传下载实战 ——文件上传、下载、在线打开、删除
springboot文件上传下载实战 文件上传 文件上传核心 UserFileController 文件上传测试 文件下载与在线打开 文件下载.在线打开核心 UserFileController 文件 ...
- springboot文件上传下载实战 —— 登录功能、展示所有文件
springboot文件上传下载实战 创建项目 pom.xml 数据库建表与环境准备 建表SQL 配置文件 application.properties 整体架构 前端页面 登录页面 login.ht ...
- java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩
在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...
- C# 文件/文件夹压缩解压缩
项目上用到的,随手做个记录,哈哈. 直接上代码: 1 using System; 2 using System.Data; 3 using System.Configuration; 4 using ...
- 【Auto.js】[zip压缩] 将文件夹压缩成zip包
将一个文件夹压缩成一个zip包,可应用于项目文件夹打包成zip, 文件夹过滤了目录中的空文件夹,因此,空文件夹不会被打包到zip包中. 由于本人JS知识有限,JAVA也不懂, 导致该函数, 打包大型文 ...
最新文章
- Hibernate映射解析——七种映射关系
- python推荐入门书籍-学python入门看什么书
- android软件的data使用方法,实例讲解Android中SQLiteDatabase使用方法
- 5月19-20日的上海 来一次纯粹的WebRTC之旅
- oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码
- 信息学奥赛一本通(1159:斐波那契数列)
- 1370. 上升下降字符串
- 【收藏】这些Python代码技巧,你肯定还不知道
- Django在Window下的部署
- mysql注入转义绕过_SQL注入防御绕过——二次注入
- lisp方格网法计算土方量_CAD计算土方方量插件
- 金蝶EAS,序时簿界面去除数据隔离,根据枚举项实现背景色标记,数据排序
- 矩形波 matlab,Matlab的方波函数
- 申宝股票-大盘缩量调整
- s3cmd 快速评估RADOSGW的性能
- qt做标定软件_有什么很好的软件是用 Qt 编写的?
- Contest 20140914 Mushroom写情书 字符串雙hash 後綴數組
- 【乐鑫ESP32】腾讯云平台项目创建以及MQTT协议连接
- 自制语言——Timi
- 中科院刘康:低资源环境下的事件知识抽取
热门文章
- OSChina 周二乱弹 —— 基于现代生物化学的长生不老药炼制教程
- 几种高效电路分析方法
- win11+github pages+hexo+aurora主题搭建博客
- oracle磁盘满了怎么办,ORACLE磁盘空间占满解决
- 【微积分】2.2一元函数积分
- html悬浮客服代码,js QQ客服悬浮效果实现代码
- 7-1 数组插入元素 (10 分)
- 多台机器同步Windows上的文件 -cwRsync 同步问题
- unity商店demo学习:俯视视角RPG游戏
- easyx游戏编程:魔塔(c++语言开发)源码