@Test
public void testZipFile() throws IOException {
String filePath = "D:\\导出压缩文件.zip";
OutputStream outputStream = new FileOutputStream(filePath);
try (ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {
// excel
zipOutputStream.putNextEntry(new ZipEntry("excel文件.xlsx"));
byte[] excelFile = FileUtil.readBytes("D:\\excel文件.xlsx");
zipOutputStream.write(excelFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// doc
zipOutputStream.putNextEntry(new ZipEntry("doc文件.docx"));
byte[] docFile = FileUtil.readBytes("D:\\doc文件.docx");
zipOutputStream.write(docFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// pdf
zipOutputStream.putNextEntry(new ZipEntry("pdf文件.pdf"));
byte[] pdfFile = FileUtil.readBytes("D:\\pdf文件.pdf");
zipOutputStream.write(pdfFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// ...
} catch (Exception e) {
e.printStackTrace();
}
}
@RequestMapping("exportZipFile")
public void exportZipFile(HttpServletResponse response) throws IOException {
String zipName = "D:\\导出压缩文件.zip";
response.setContentType("application/OCTET-STREAM;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename="
+ new String(zipName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
try (ServletOutputStream outputStream = response.getOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {
// excel
zipOutputStream.putNextEntry(new ZipEntry("excel文件.xlsx"));
byte[] excelFile = FileUtil.readBytes("D:\\excel文件.xlsx");
zipOutputStream.write(excelFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// doc
zipOutputStream.putNextEntry(new ZipEntry("doc文件.docx"));
byte[] docFile = FileUtil.readBytes("D:\\doc文件.docx");
zipOutputStream.write(docFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// pdf
zipOutputStream.putNextEntry(new ZipEntry("pdf文件.pdf"));
byte[] pdfFile = FileUtil.readBytes("D:\\pdf文件.pdf");
zipOutputStream.write(pdfFile);
zipOutputStream.flush();
zipOutputStream.closeEntry();
// ...
} catch (Exception e) {
e.printStackTrace();
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容