JAVA读取PPT报错 Zip bomb detected! The file would exceed the max. ratio of compressed file size to the size of the expanded data,完整报错信息如下所示。
java.io.IOException: Zip bomb detected! The file would exceed the max. ratio of compressed file size to the size of the expanded data.
This may indicate that the file is used to inflate memory usage and thus could pose a security risk.
You can adjust this limit via ZipSecureFile.setMinInflateRatio() if you need to work with files which exceed this limit.
Uncompressed size: 103231, Raw/compressed size: 900, ratio: 0.008718
Limits: MIN_INFLATE_RATIO: 0.010000, Entry: xl/pivotCache/pivotCacheRecords1.xml
主要原因是文件太大,解决办法增加如下代码。
ZipSecureFile.setMinInflateRatio(-1.0d);
完整代码如下:
FileInputStream inputStream = new FileInputStream(pptPath); ZipSecureFile.setMinInflateRatio(-1.0d); XMLSlideShow ppt = XMLSlideShow(inputStream); inputStream.close();