我看了很多网上的demo,先生成ZIP压缩文件,然后再下载。
我这里是生成ZIP文件流 进行下载。(核心代码没多少,就是一些业务代码)
工具类
调用看不懂?那来个简单粗暴的
结果:
?
======================我是分割线======================
这个例子给我了我很大的帮助,因为他是利用ResponseEntity进行下载的,这个下载工具类很好,但是网上一般的例子是基于File的而不是基于byte[]数组的,我的文件是存到数据库中的,文件是用byte[]数组存储的,程序猿一定要深刻理解ZipOutputStream在压缩中的处理关键,话不多说,我直接上我改造的代码工具类
注:FileBank类只有两个属性fileName、fileBlob
Controller中代码很简单:
最后:之所以总结这篇笔记是因为想要用最优雅的代码完成一个文件压缩下载的功能,网上很多用HttpServletResponse原生下载的例子,实在接受不了这么丑陋的代码(可读性奇差,不好维护和修改,通用性很差,代码量太大,等等各种问题不一而足),故而记下此文,即完成了任务又优雅(一个不追求优雅代码的程序员不是好程序员!!!)的实现了,终于可以安心睡觉了……
用Spring中的ResponseEntity文件批量压缩下载
原文:https://www.cnblogs.com/xulijun137/p/12210200.html