springboot 文件打包下载

BufferedInputStream bufferedInputStream = null;
ZipOutputStream zipOutputStream = null;
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
response.reset();
response.setHeader("Content-Disposition",
"attachment;filename=" + new String(fileName.getBytes("UTF-8"), "iso-8859-1"));
response.setHeader("Access-Control-Allow-Origin", "*");
response.setContentType("application/octet-stream; charset=utf-8");
response.setCharacterEncoding("UTF-8");
zipOutputStream = new ZipOutputStream(outputStream);
String filePath = "E:\ChromeDownLoad\11.png";
File file = new File(filePath);
if (file.exists()) {
fileCount--;
// 创建ZIP实体,并添加进压缩包 (这里可能会有重名问题,需要加个标识)
ZipEntry zipEntry = new ZipEntry(UUID.randomUUID().toString() + "_" + "11.png");
zipOutputStream.putNextEntry(zipEntry);
// 读取待压缩的文件并写进压缩包里
bufferedInputStream = new BufferedInputStream(new FileInputStream(file), 1024 * 10);
int len;
// 定义每次读取的字节数组
byte[] buffer = new byte[1024];
while ((len = bufferedInputStream.read(buffer)) != -1) {
zipOutputStream.write(buffer, 0, len);
}
}

zipOutputStream.flush();
zipOutputStream.close();
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
// 关闭流
try {
if (null != bufferedInputStream) {
bufferedInputStream.close();
}
if (null != zipOutputStream) {
zipOutputStream.close();
}
if (null != outputStream) {
outputStream.close();
}
} catch (IOException e) {
log.error("IOException occureds...", e);
}
}






原文地址:https://www.cnblogs.com/niuniu0108/p/14177307.html