打包文件zip压缩包返回
目标:
生成多个csv文件,并打包返回给前端
- 生成csv文件
- 打包zip 返回文件流
开干:
1 引入pom
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.4</version></dependency>
2 获取数据,然后生成csv文件
控制器如下:
@PostMapping("/export")@ApiOperation("导出")public void export(@RequestBody GraphData graphData, HttpServletResponse response, @PathVariable String space) throws UnsupportedEncodingException {vertexService.export(graphData,response,space);}
主要是通过 response 返回文件流;
通过数据写入到csv中
String fileName = "关系-" + key;String pathname = path + "/" + fileName + ".csv";//生成的文件位置 和 文件名称CsvWriter csvWriter = CsvUtil.getWriter(new File(pathname), CharsetUtil.CHARSET_UTF_8);//设置编码格式for (List<String> row : value) {//数据集合,写入每行数据csvWriter.write(Convert.toStrArray(row));}csvWriter.flush();csvWriter.close();// 一个文件已经完成,多个文件 循环此代码 多个文件都放在同一个文件夹下
3 通过生成的文件生成压缩包zip
String demoName = "导出数据.zip";// 压缩包zipString zipPath = path + demoName;//包含zip文件的名称 生成的zip路径 不应该是打包路径的子路径ZipUtil.zip(path, zipPath, CharsetUtil.CHARSET_UTF_8, false);// path 要压缩的路径FileUtil.del(path);// 删除csv源文件 可以不删除//返回压缩包try {BufferedInputStream bis;OutputStream out = response.getOutputStream();response.setContentType("text/html; charset=UTF-8");//设置编码格式response.setContentType("application/octet-stream");// 设置contentyperesponse.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(space + "_" + randomNumbers + demoName, CharsetUtil.UTF_8))));// 设置返回文件名称bis = new BufferedInputStream(new FileInputStream(zipPath));//定义byte,长度就是要转成zip文件的byte长度,避免浪费资源byte[] buffer = new byte[bis.available()];bis.read(buffer);out.flush();out.write(buffer);} catch (IOException e) {e.printStackTrace();}
最终效果如下
打包文件zip压缩包返回相关推荐
- Java实现文件批量下载,打包成zip压缩包
最近在做一个管理系统的项目,需要实现一个功能,就是批量下载文件,并打包成zip压缩包. 前端通过POST请求传来要下载的文件列表,Java代码实现如下: import java.io.Bu ...
- 使用filemanager-webpack-plugin将前端项目打包成zip压缩包
使用filemanager-webpack-plugin插件将前端的dist目录打包成zip压缩包,省去手动压缩,进一步可以配合 idea 的Cloud Toolkit插件 或者jekenis进行自动 ...
- 批量下载文件,打包成zip压缩包
批量下载文件,用程序打成zip压缩包在下载 前台传来要下载的url数组 @RequestMapping(value = "/download",method = RequestMe ...
- easyExcel导出excel文件并打包成zip压缩包下载
文件导出 专栏收录该内容 2 篇文章0 订阅 订阅专栏 package com.business.testExcelPort; import java.io.BufferedInputStream; ...
- EasyExcel3.0.5 导出多个sheet,批量下载打包成ZIP压缩包
多sheet导出并批量下载附件 前言 源码 代码实现 Controller 接口类 实现类 (重中之重) 实现类重点强调 测试 结语 前言 最近浏览语雀社区官网,里面有一篇 easyexcel 里面 ...
- java 导出表格打包zip文件下载_asyExcel导出excel并打包成zip压缩包下载
假期期间自己在家撸码,刚好用到了导出,导出来之后是多个文件,所以需要打成压缩包并下载来给客户.查阅了一些资料,把这段代码贴在这,相当于有个记录吧. package com.business.testE ...
- 使用 easyExcel 生成多个 excel 并打包成zip压缩包
前言: 最近项目有个需求,需要生成多个 excel 并打包成 zip下载:由于需要生成的 excel 头字段过多,这里有96个时间段的表头,如果建一个有96个字段的实体不太好,还好 easyExcel ...
- Java实现批量打包文件Zip下载(适用于Windows,Linux)
前言 1.思路总结: * 1.每个单号多个文件直接遍历IO临时单号zip包, * 2.多个单号临时zip包遍历IO到总临时zip包, * 3.总临时zip包copy到前端 ...
- 【Java】Java实现批量打包文件Zip下载
有这样一个需求,需要将某个文件夹进行下载,而且该文件下包含多张图片,图片是存储于Linux服务器上的.故采用zip打包方式进行下载.在此并没有采用获取网络图片的方式进行下载,而是找到图片在服务器上存储 ...
最新文章
- 你还在new对象吗?Java8通用Builder了解一下?
- R语言ggplot2可视化图中添加希腊字母实战
- android视频录制(调用系统视频录制)
- 文巾解题 LCP 07. 传递信息
- Earth Mover's Distance (EMD)距离
- 使命召唤手游迎来欧阳娜娜,这阵容够豪华,玩家期待吗?
- 小黑小波比.Ubuntu下的截图
- Oracle树形结构查询之prior的理解
- linux网卡驱动 pdf,Linux下网卡驱动程序.pdf
- java 循环map 优雅写法_Java for循环Map集合优化实现解析
- 日均处理万亿数据!Flink在快手的应用实践与技术演进之路
- java ssm框架登录代码,求一个SSM框架登录功能的源码,要求能运行成功
- this is a test
- 百度地图集成Plist文件需要增加的字段
- 枚举smb共享期间出错_大量三星手机黑屏系统崩溃,客服:闰4月计算出错
- Windows server 2012 R2 搭建文件服务器(五):映射网络驱动器(图形和批处理)
- 公司邮箱地址格式是什么?邮箱地址怎么写?邮箱地址大全
- Windows Git 上传 报错 error: bad signature 0x00000000 fatal: index file corrupt
- spss modeler模型应用
- C++ 算术基本定理