说明
有一个需求,根据入参数据下载zip,zip里文件内容调用第三方系统返回的文件。如果把文件保存到本地后,在打包成zip,比较耗时,同时浏览器等待时间长。
思路为直接把输入流InputStream打包到zip中,事实返回。
关键代码如下:
ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream());
ZipEntry zipEntry = new ZipEntry(“文件夹名称/文件名称”);
InputStream inputStream = 请求第三方系统返回的输入流
IOUtils.copy(inputStream, zipOut);
准完整代码如下
@GetMapping("/zip")
public void downloadZip(HttpServletResponse response) {
try (OutputStream os = response.getOutputStream