一.实现多文件打包压缩
@Testpublic void testZipFile() throws IOException {String filePath = "D:\\导出压缩文件.zip";OutputStream outputStream = new FileOutputStream(filePath);try (ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {// excelzipOutputStream.putNextEntry(new ZipEntry("excel文件.xlsx"));byte[] excelFile = FileUtil.readBytes("D:\\excel文件.xlsx");zipOutputStream.write(excelFile);zipOutputStream.flush();zipOutputStream.closeEntry();// doczipOutputStream.putNextEntry(new ZipEntry("doc文件.docx"));byte[] docFile = FileUtil.readBytes("D:\\doc文件.docx");zipOutputStream.write(docFile);zipOutputStream.flush();zipOutputStream.closeEntry();// pdfzipOutputStream.putNextEntry(new ZipEntry("pdf文件.pdf"));byte[] pdfFile = FileUtil.readBytes("D:\\pdf文件.pdf");zipOutputStream.write(pdfFile);zipOutputStream.flush();zipOutputStream.closeEntry();// ...} catch (Exception e) {e.printStackTrace();}}
二.导出zip文件接口
@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)) {// excelzipOutputStream.putNextEntry(new ZipEntry("excel文件.xlsx"));byte[] excelFile = FileUtil.readBytes("D:\\excel文件.xlsx");zipOutputStream.write(excelFile);zipOutputStream.flush();zipOutputStream.closeEntry();// doczipOutputStream.putNextEntry(new ZipEntry("doc文件.docx"));byte[] docFile = FileUtil.readBytes("D:\\doc文件.docx");zipOutputStream.write(docFile);zipOutputStream.flush();zipOutputStream.closeEntry();// pdfzipOutputStream.putNextEntry(new ZipEntry("pdf文件.pdf"));byte[] pdfFile = FileUtil.readBytes("D:\\pdf文件.pdf");zipOutputStream.write(pdfFile);zipOutputStream.flush();zipOutputStream.closeEntry();// ...} catch (Exception e) {e.printStackTrace();}}