java多个文件压缩打包成zip下载
如果实现批量操作一些文件,使之压缩打包成zip下载?
具体实现步骤如下:
- 设置下载文件名编码
- 创建zip输出流ZipOutputStream
- 将需要下载的文件流循环写入ZipOutputStream
- 关闭各个流
话不多说,直接上代码
service层方法(关键):
@Override
public void downloadAllFile(HttpServletResponse response, String processInstanceId) {
String downloadName = "xxx附件.zip";
try {
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(downloadName, "UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new HrmsException("下载文件名编码时出现错误.", e);
}
OutputStream outputStream = null;
ZipOutputStream zos = null;
try {
outputStream = response.getOutputStream();
zos = new ZipOutputStream(outputStream);
// 将文件流写入zip中
downloadTolocal(zos,processInstanceId);
} catch (IOEx