Java把文件压缩然后下载
一边压缩一边下载,前端写法可以参考Java通过流下载文件以及相关优化
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=pdf.zip");
response.setHeader("filename", fileInfo.getFileVersion() + ".zip");
response.setContentLength(allFileSize);
BufferedInputStream bufferedInputStream;
ZipOutputStream zipOut = null;
try {
zipOut = new ZipOutputStream(response.getOutputStream());
for (FileInfo info : fileInfoList) {
bufferedInputStream = new BufferedInputStream(new FileInputStream(info.getAbsolutePath()));
zipOut.putNextEntry(new ZipEntry(info.getFileName()));
int temp = 0;
while ((temp = bufferedInputStream.read()) != -1) { // 读取内容
zipOut.write(temp); // 压缩输出
}
bufferedInputStream.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭流
try {
zipOut.flush();
zipOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了