读取excel报错 Zip bomb detected! The file would exceed the max. ratio of compressed file size to the

ゞ 浴缸里的玫瑰 2022-12-20 03:28 444阅读 0赞
  • 读取excel报错 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 fileInputStream = null;

    1. try {
    2. fileInputStream = new FileInputStream(filePath);
    3. ZipSecureFile.setMinInflateRatio(-1.0d);
    4. XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
    5. //获取sheet
    6. XSSFSheet sheet = sheets.getSheet(sheetName);
    7. } catch (Exception e) {
    8. e.printStackTrace();
    9. }
  • 有可能还会发生堆内存溢出,需要设置堆内存大小,如下所示。

    -Xmx5550m -Xms5550m

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,444人围观)

还没有评论,来说两句吧...

相关阅读