提问人:Vijay Raghavan 提问时间:11/13/2023 最后编辑:James ZVijay Raghavan 更新时间:11/13/2023 访问量:21
java.util.zip.DataFormatException:无效的存储块长度
java.util.zip.DataFormatException: invalid stored block lengths
问:
我有一个 Spring Boot 应用程序,其 API 接受 MultiparFile,我正在读取文件 inputStream 并使用 XSSFWorkbook 处理流。
本地它适用于在容器上运行的相同 docker 映像。
at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.readFromInflater(ZipArchiveInputStream.java:660)"
at java.base/java.util.zip.Inflater.inflate(Inflater.java:378)"
at java.base/java.util.zip.Inflater.inflateBytesBytes(Native Method)"
Caused by: java.util.zip.DataFormatException: invalid stored block lengths"
在 AWS ECS 集群中,不知何故我看到流似乎已损坏,我什至添加了一个虚拟 API,只需将 ByteArray 作为附件返回到响应流并保存到本地计算机以检查和猜测是什么!打开时的文件说它已损坏。
这仅适用于 Excel 文件,而不是 txt 文件,如果您能够以某种方式解决问题,请建议,我可以从您的解决方案中获取一些建议。
尝试使用
@RequestParam("file") MultipartFile file
跟
try (InputStream workbookStream = file.getInputStream();
Workbook workbook = new XSSFWorkbook(workbookStream)) {
Sheet sheet = workbook.getSheetAt(0);
log.info("Sheet Name: "+sheet.getSheetName());
}
答: 暂无答案
评论