<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>xxx</version>
</dependency>
List<ReqDocZip> reqDocZips = dealWithOutPutItems(retPageDocFiles);
String[] fileNames = reqDocZips.stream().map(ReqDocZip::getName).toArray(String[]::new);
for (ReqDocZip reqDocZip : reqDocZips) {
if (reqDocZip.getName().equals(fileName)) {
fileName = UUID.randomUUID() + "-" + fileName;
break;
}
}
ByteArrayInputStream[] inputStreams = reqDocZips.stream().map(ReqDocZip::getInputStream).toArray(ByteArrayInputStream[]::new);
response.setContentType("application/zip");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("导出归档文档", StandardCharsets.UTF_8.toString()) + ".zip");
ZipUtil.zip(response.getOutputStream(), fileNames, inputStreams);
@Getter
@Setter
public class ReqDocZip {
private String name;
private InputStream inputStream;
}