Controller实现zip文件下载

public void download(String tableName) {ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();ZipOutputStream zip = new ZipOutputStream(byteArrayOutputStream);Map<String, String> map = generatorDomain.outputString(tableName);map.forEach((k, v) -> {try {zip.putNextEntry(new ZipEntry(k));IoUtil.writeUtf8(zip, false, v);// 刷新缓冲区,一般写字符时用到,因为写字符时先进入缓冲区,然后将内存中的数据立刻写出(因为缓冲区是写满之后才会写出, 用flush()就不必等到缓冲区满,立刻写出)流对象还可以继续使用.zip.flush();// 关闭当前 ZIP 条目并定位流以写入下一个条目zip.closeEntry();} catch (IOException e) {log.error("{} 表名,渲染模板失败" , tableName, e);}});byte[] bytes = byteArrayOutputStream.toByteArray();HttpServletResponse response = RequestContextHolderUtils.getResponse();response.reset();response.setContentType("application/octet-stream;charset=UTF-8");response.setHeader("Content-Disposition" , "attachment; filename='" + tableName + ".zip'");response.addHeader("Content-Length" , "" + bytes.length);try (ServletOutputStream out = response.getOutputStream()) {IoUtil.write(out, true, bytes);} catch (IOException e) {log.error("{} 文件下载失败" , tableName, e);}}

SpringBoot实现zip文件下载相关推荐

  1. java 导出表格打包zip文件下载_asyExcel导出excel并打包成zip压缩包下载

    假期期间自己在家撸码,刚好用到了导出,导出来之后是多个文件,所以需要打成压缩包并下载来给客户.查阅了一些资料,把这段代码贴在这,相当于有个记录吧. package com.business.testE ...

  2. 通俗易懂【Springboot】 单文件下载和批量下载(多个文件合成一个压缩包下载)

    文章目录 一.单文件下载 1.简单理解文件下载 2.单文件下载的具体代码实现 3.测试 4.单文件下载整体代码 二.多文件批量下载(多个文件合成一个压缩包下载) 1.多文件下载的实现方式,这里使用了Z ...

  3. 非常详细的FastDFS整合springBoot教程-带文件下载地址

    FastDFS整合springBoot教程 编写该教程的目的 本教程基于已有的springBoot框架进行整合,springBoot构架部分不做教学 为了给自己做笔记,同时为所需童鞋少爬点坑. 目录 ...

  4. Axios实现zip文件下载

    前端代码片段 - zipDownload.js import axios from 'axios' import baseURL from './baseUrl'const mimeMap = {xl ...

  5. springboot实现excel文件下载的功能

    场景:由于需要使用poi进行数据的导入和导出,在导入的时候excel的格式是很严格的,所以我们需要提供一个excel模板让运维人员添加数据然后再上传,这样格式就不会有问题了,虽然功能简单,但是copy ...

  6. java 导出表格打包zip文件下载_POI多个工作簿导出表格打包ZIP下载

    首先获得workbook集合对象 public static void zipFiles(List srcfile, File zipfile,String fileName) { try { Zip ...

  7. 【SpringBoot】ZIP包 压缩解压缩

    ZIP包 压缩&&解压缩 ZIP包 压缩&&解压缩 ZIP包 压缩&&解压缩 压缩:第一种方法,压缩不支持文件夹压缩,需要指定待压缩的所有文件路径. 压 ...

  8. Android zip文件下载和解压

    下载: DownLoaderTask.java package com.johnny.testzipanddownload;import java.io.BufferedInputStream; im ...

  9. zip 文件下载函数封装

    代码: export default {/*** 下载文件*/exportFile: (fileUrl) => {if (fileUrl) {let exportFrame = document ...

最新文章

  1. spring in action 4 线路图
  2. 不能创建Outlook邮件的解决办法
  3. unknown type name 'uint32_t'
  4. 谷歌体三维捕捉新突破:实现后期任意照明修改
  5. linux下找不到libc 库,Linux-覆盖libc open()库函数
  6. (22)npm scripts 实践—构建样式文件
  7. (03)FPGA与CPLD区别
  8. JNDI学习总结(3)——Tomcat下使用C3P0配置JNDI数据源
  9. python3.7.1中IDLE突然打不开;spyder3打不开解决方案
  10. python中文decode和encode转码
  11. 机器学习基础(三十六)—— 非规整数据(值缺失、异常值)的处理
  12. RestSharp.RestClient
  13. oracle定时任务按照小时,ORACLE定时任务时间间隔设置
  14. Vue File Manager – PHP即时存储、共享和获取文件基于VUE v2.2.0.2
  15. 如何防御网站被攻击?
  16. Integer[] cannot be converted to int[]
  17. Hypervisor技术
  18. 农历和阳历互转(c语言)
  19. context.getApplicationContext()与context的差别
  20. 利用STM32F103最小系统做C2接口离线烧录器

热门文章

  1. 国产迪王耀全球(下)
  2. 6个linux运维典型问题,Linux运维人员面试常见的问题及答案(二)
  3. 解决nasm/yasm not found or too old. Use --disable-x86asm for a crippled build报错
  4. 怪物猎人世界取得服务器信息,steam怪物猎人世界无法连接更新服务器 | 手游网游页游攻略大全...
  5. 用C++写出求矩形和圆形面积的程序
  6. Python批量改变图片的名字(非常好用,亲测)
  7. 【Python3.6】:廖雪峰python教程转换成 PDF
  8. 安装双系统时进行多重引导,最好先安装Windows再装Linux
  9. 如何提高程序员的生产率 (2)
  10. Python全栈之路---day01(背景、语法初识)