一、前言
有个需求就是,将第三方的网络图片或文件,打包成压缩包下载,下载过程中,文件不存本地,下载完成之后,打包成压缩包,相关代码如下:
二、实现
前端ajax
var form = $("<form></form>").attr("action", "/batchDownload/xxx").attr("method", "post");
form.appendTo('body').submit().remove();
需通过表单的形式提交才能触发下载。
后端代码
public void batchDownload(HttpServletResponse response) throws Exception {
List<DownloadDto> certificates = Lists.newArrayList();
//组装DownloadDto省略
String nTime = DateUtil.getTime(); //获取当前时间戳
String filename = nTime + ".zip";
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(bos);