我会尽力简短地解释我的问题在哪里。我有一个JSP / Servlet应用程序,我试图制作一个ZIP文件并将该文件发送给浏览器。
经过大量工作后,所有工作都开始顺利进行,既在本地又在另一个环境中运行,我们部署了我们的应用程序关于创建和交付ZIP文件的代码没有任何变化,但自从昨天以后,ZIP文件不再适用于部署环境。第一次尝试下载zip文件时遇到了文件错误的意外结果,第一次之后我总是得到归档文件,它可能是未知格式或损坏的错误。
因为我可以从部署环境中看到它们,所以我尝试在ZIP中放入的文件没有问题。我开始认为,可能在服务器上可能存在一个库或一个jar或一个配置,可能会使ZIP文件在本地环境中无法正常工作。
这甚至有意义吗?在下面,你可以找到代码:
ByteArrayOutputStream out = new ByteArrayOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(out);
for (....) {
DocumentVO documentVO = ....;
String fileName = ....;
CRC32 crc = new CRC32();
crc.reset();
ZipEntry zipEntry = new ZipEntry(fileName);
byte[] content = documentVO.getDocumentContent();
crc.update(documentVO.getDocumentContent());
zipEntry.setMethod(ZipEntry.STORED);
zipEntry.setSize(content.length);
zipEntry.setCrc(crc.getValue());
zipEntry.setCompressedSize(content.length);
zipOutputStream.putNextEntry(zipEntry);
zipOutputStream.write(content);
zipOutputStream.closeEntry();
}
zipOutputStream.finish();
zipOutputStream.close();
response.setHeader("Content-Type", "application/zip");
response.setHeader("Content-Disposition","attachment; filename=correspondence.zip");
response.getOutputStream().write(out.toByteArray());
response.getOutputStream().flush();每一个想法将不胜感激。