java 实现下载文件压缩zip 要求不生成临时文件
时间: 2023-03-28 09:03:41 浏览: 315
java后台批量下载文件并压缩成zip下载的方法
可以使用Java的ZipOutputStream类将文件压缩成zip格式并直接下载,无需生成临时文件。具体实现可以参考以下代码:
```java
public void downloadZipFile(HttpServletResponse response, List<File> fileList, String zipFileName) throws IOException {
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(zipFileName, "UTF-8"));
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
for (File file : fileList) {
ZipEntry zipEntry = new ZipEntry(file.getName());
zos.putNextEntry(zipEntry);
try (FileInputStream fis = new FileInputStream(file)) {
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) > ) {
zos.write(buffer, , len);
}
}
zos.closeEntry();
}
}
}
```
其中,fileList为要压缩的文件列表,zipFileName为压缩后的文件名。调用该方法即可实现下载压缩文件,无需生成临时文件。
阅读全文