首页 > 其他分享 >【随手记录】Apache POI 报错:Zip bomb detected! The file would exceed the max. ratio of compressed file ....

【随手记录】Apache POI 报错:Zip bomb detected! The file would exceed the max. ratio of compressed file ....

时间:2024-12-23 10:09:47浏览次数:4  
标签:exceed bomb Zip Excel 报错 file POI

1、背景:

  使用POI解析Excel报错:

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 this could pose a security risk.
You can adjust this limit via Zipsecureile.setMinInflateRatio() if you need to work with files which exceed this limit.
Uncompressed size:105456Raw/compressedsize :9-70ratio:0.009198Limits: MIN_INFLATE_RATIO:0.010000,Entryxl/pivotCache/pivotCacheRecords1.xml

 

2、原因:

  Excel是有压缩机制的,读取解析Excel时候,会将Excel解压为一个非常大的未压缩文件,会引起诸如耗尽内存或磁盘空间等问题。

  为了防止这种情况的发生,Apache POI内置了一些防护措施,并且默认情况下启用了这些防护措施。

3、处理

  fileInputStream = new FileInputStream(filePath);
   // 设置最小解压比率以解决 Zip bomb 错误
   ZipSecureFile.setMinInflateRatio(-1.0d);
   // 创建 XSSFWorkbook 对象
   XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream);
   // 获取指定的 sheet
   XSSFSheet sheet = workbook.getSheet(sheetName);

4、其他

  4.1、分块处理:

  将文件分块读取并处理,而不是一次性加载整个文件,这样可以减少内存使用,防止内存溢出。

  4.2、另存为csv:可以尝试重新压缩文件,另存为csv格式,降低压缩比率,以减少解压时的内存使用

标签:exceed,bomb,Zip,Excel,报错,file,POI
From: https://www.cnblogs.com/whaleX/p/18623284

相关文章

  • SAP 报错:指定参考表和参考字段
    起因是我在新建数据库表字段的时候,遇到了这样一个问题:原因是数量类型需要指定一个单位点击“货币/数量字段”加上参考字段就好了SAP里只有两个这样的特殊字段:QUAN和CURRDataType是QUAN(数量类型)的字段,要引用单位字段UNIT(即DataType为UNIT的字段);DataType是CURR......
  • dedeCMS 图集提示302与FILEID:X解决办法
    问题:图集提示302与FILEID:X。解决办法:打开 /dede/swfupload.php 文件,找到 echo"FILEID:".$_SESSION['fileid'];,在其上面加入:ob_end_clean();继续找到 if(empty($id)),在其上面加入:ob_end_clean();将最近改动过的文件用编程软件查看和转码回UTF-8无BOM......
  • push代码报错fatal: Authentication failed的问题解决
    在不使用pat之前,我的centos系统不能向github提交代码,然后我在github上申请了pat并且配置,可以成功提交代码了,而且还免除了输入用户名和密码的麻烦。如何申请pat(咨询文心快码就可以得到答案):如何在git上配置pat(继续咨询文心快码):配置完成之后,问题得到解决,现在可以正常的push代码......
  • 解决Dede织梦上传图片失败 ERROR:Copy Uploadfile Error! 提示
    错误显示:拷贝(复制)上传文件出错!原因:上传的文件损坏。上传目录无写权限。解决方法:尝试上传其它图片。给uploads写入权限:Linux服务器:通过FTP设置 uploads 目录为777权限,子文件夹选择继承。Windows2003服务器:右键文件夹属性->安全->添加账户->增加 IUSER_机器名......
  • 向github仓库上传代码报错的处理
    remote:PermissiontoBROtao233/socket_study.gitdeniedtoMasterTao2233.fatal:unabletoaccess'https://github.com/BROtao233/socket_study.git/':TherequestedURLreturnederror:403在通过push命令向github仓库上传代码时,遇到了上面的报错仔细读,意思是,对于用户......
  • 解决 PbootCMS 附件上传报错
    根据你提供的信息,PbootCMS附件上传时报错:  上传失败:UNKNOW:Code:8192;Desc:stripos():Non-stringneedleswillbeinterpretedasstringsinthefuture.Useanexplicitchr()calltopreservethecurrentbehavior;File:/www/wwwroot/aaa.xxxx.com/core/fu......
  • 导入程序中的sql文件报错正常怎么办
    导入SQL文件时遇到错误是比较常见的问题。以下是一些常见的错误及其解决方法:常见错误及解决方法语法错误错误信息:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear...解决方法:......
  • FileZilla如何安装?附获取方式
    前言大家好,我是小徐啊。我们在开发java应用的时候,一般都是需要连接linux服务器的。而连接服务器,其中的一大工具就是连接上去之后传输和下载文件。这其中有很多工具,其中有一个是FileZilla,今天小徐就来介绍下如何安装FileZilla。文末附获取方式。如何安装FileZilla首先,我们需要双......
  • 实战技巧 DevEco Profiler 性能调优 Time
    实战技巧DevEcoProfiler性能调优Time背景DevEcoStudio开发工具中提供了Profiler面板,可以让我们在针对实际开发应用过程中碰到的一些性能相关的问题提供解决方案。如响应速度慢、动画卡顿、内存泄漏、发热、耗电快等等场景。其中Profiler提供了实时监控、深度录......
  • 自动化构建与进度显示:全面解读 make 与 Makefile
    文章目录`Make``make`的主要功能使用`make`工具`Makefile`的基本结构简单示例进阶示例`Make`和`Makefile`的优缺点倒计时与进度条程序make和makefile是Linux/Unix开发环境中用于自动化构建的强大工具,尤其在多文件编译的项目中,用于管理文件之间的依赖关......