案例:
@ResponseBody
@RequestMapping("/templateDownload")
public void templateDownload(HttpServletResponse resp) {
// 要下载的文件路径
String filePath1 = "你的文件路径";
String filePath2 = "你的文件路径";
String filePath3 = "你的文件路径";
//下载的zip压缩包名称
String zipName = "上传文件模板.zip";
List<String> fileList = new ArrayList<>();
ZipOutputStream zos = null;
fileList.add(filePath1);
fileList.add(filePath2);
fileList.add(filePath3);
try {
resp.setContentType("application/x-download ");
resp.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(zipName, "UTF-8"));
zos = new ZipOutputStream(resp.getOutputStream());
downloadTolocal(zos, fileList);
resp.flushBuffer();
} catch (IOException e) {
e.printStackTrace();
}
}
// 打包压缩
private void downloadTolocal(ZipOutputStream zos, List<String> fileList) throws IOException {
InputStream input = null;
for (String filePath : fileList) {
File file = new File(filePath);
// 一个文件对应一个ZipEntry
ZipEntry zipEntry = new ZipEntry(file.getName());
input = new FileInputStream(file);
zos.putNextEntry(zipEntry);
IOUtils.copy(input, zos);
}
zos.close();
input.close();
}