public WebResponsedownloadFileBatch(HttpServletResponse response, HttpServletRequest request, List fileIdList, String loginUserId, String loginUserName) throws IOException { ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode("打包","UTF-8")+".zip"); int count = 1; for (String fileId : fileIdList) { String fileName = fileCenterService.getFilename(fileId, loginUserId); ResponseEntity respon = fileCenterService.download(fileId, loginUserId, loginUserName); byte[] result = respon.getBody(); addToZip(new ByteArrayInputStream(result), zipOut, fileName,count); count++; zipOut.flush(); response.flushBuffer(); } zipOut.close(); } private void addToZip(ByteArrayInputStream is, ZipOutputStream zipOut, String fileName,int count) { try{ ZipEntry entry = new ZipEntry(count+"."+fileName); zipOut.putNextEntry(entry); int len; byte[] buffer = new byte[1024]; while ((len = is.read(buffer)) > 0) { zipOut.write(buffer, 0, len); } is.close(); zipOut.closeEntry(); }catch (Exception e){ e.printStackTrace(); } }



