java.io.IOException:无法读取 zip 条目源

2024-03-14

FileInputStream file = new FileInputStream("/file/path/report.xlsx"); 
XSSFWorkbook wb = new XSSFWorkbook(file); --!ERROR LINE!--

我在第二行收到错误。我查看了不同的在线资源,例如:

使用 Apache POI 读取 Excel .XLSX 时出错 https://stackoverflow.com/questions/11145323/error-reading-excel-xlsx-with-apache-poi

Exception in thread "main" java.io.IOException: Failed to read zip entry source
    at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:106)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:342)
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:285)
    at test.test.main(test.java:48)
Caused by: 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. Counter: 1483367, cis.counter: 14796, ratio: 0.009974605070761314Limits: MIN_INFLATE_RATIO: 0.01
    at org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.advance(ZipSecureFile.java:257)
    at org.apache.poi.openxml4j.util.ZipSecureFile$ThresholdInputStream.read(ZipSecureFile.java:214)
    at java.io.FilterInputStream.read(Unknown Source)
    at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource$FakeZipEntry.<init>(ZipInputStreamZipEntrySource.java:132)
    at org.apache.poi.openxml4j.util.ZipInputStreamZipEntrySource.<init>(ZipInputStreamZipEntrySource.java:56)
    at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:99)
    ... 4 more

我添加了ZipSecureFile.setMinInflateRatio(0.009);

   FileInputStream file = new FileInputStream("/file/path/report.xlsx"); 
   ZipSecureFile.setMinInflateRatio(0.009);
   XSSFWorkbook wb = new XSSFWorkbook(file);

有一段时间工作正常,然后开始抛出同样的错误

任何帮助或指导表示赞赏。


添加以下行对我来说很有效。

ZipSecureFile.setMinInflateRatio(-1.0d); 

代码如下:

FileInputStream file = new FileInputStream("/file/path/report.xlsx"); 
ZipSecureFile.setMinInflateRatio(-1.0d);
XSSFWorkbook wb = new XSSFWorkbook(file);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java.io.IOException:无法读取 zip 条目源 的相关文章

随机推荐

  • 日期列与字符串的 Athena 分区投影

    我希望使用 Athena Partition Projection 来分析来自 AWS 应用程序负载均衡器的日志文件和 Firehose 发出的日志 S3 中的数据以年 月 日为前缀 也可能以小时为前缀 我已经能够使用消防水带示例 http
  • django使用heroku设置变量SECURE_PROXY_SSL_HEADER

    我正在尝试使用 heroku 在 django 1 8 上设置与 https ssl 相关的变量 但在 Django 1 8 教程中 它说我应该小心设置这个变量 特别是 SECURE PROXY SSL HEADER HTTP X FORW
  • 设置16位灰度QImage的像素值

    我有一个宽度 imagewidth 和高度 imageheight 的 16 位图像 数据当前存储在长度为 imagewidth imageheight 的无符号短整型数组中 我想从我的数据集 称为 数据 创建一个 16 位灰度 QImag
  • ios8如何从通讯录中选择联系人

    我一直在使用 ios7 开发 iOS 应用程序一年 现在我将其升级到 ios8 并看到有一种选择联系人的新方法 我现在做的是 void showABNewPersonViewController Calling the addresbook
  • pandas 数据框中的循环依赖

    以下代码对硬币翻转结果进行投注 您从 100 英镑开始 每次翻转的风险为 5 但由于我的代码根据您的起始余额计算赌注大小 因此赌注始终为 5 英镑 import pandas import matplotlib pyplot as plt
  • Google 网络字体在 Android 4.0 和 4.2.2 中无法使用 Web 视图

    当我在使用 Web 视图的 Android 应用程序中使用 Google Web 字体时 它们在 Android 4 4 版本中运行良好 某些搭载 Android 4 2 的设备显示默认字体 大多数都可以正常工作 然而 在 Android
  • JavaScript ES6 - 计算对象数组的重复项

    我正在为我的产品列表创建一个过滤器来计算所有生产商并显示如下 苹果 3 我从数组中删除了重复项 Apple Apple Apple 我使用了此链接 获取数组中的所有非唯一值 即 重复 多次出现 https stackoverflow com
  • R 中带有动画包的循环 GIF

    我正在尝试创建一个循环播放的 GIFanimation但由于某种原因 即使我设置了选项loop TRUE 我制作的图像只播放一次然后停止 我希望 GIF 能够无限期地播放 有小费吗 install packages animation li
  • 使用 knitr 和 .Rnw for LaTeX,如何在 PDF 输出中打印完整的参考书目?

    我似乎无法破解所有可能性并在 RStudio 的 PDF 输出中插入完整的参考书目 knitr Rnw 脚本和 编译 PDF 按钮 PDF 中所需的文本是引用作品的详细信息 这是一个小人国的 bibtex 文件 名为jabrefbibtes
  • Google App Engine - 删除 JPQL 查询和级联

    我注意到 使用下面的 JPQL 查询时 PersistentUser 的子项不会被删除 但是 如果我执行以下操作 子项将被删除entityManager remove object 这是预期的吗 为什么下面的 JPQL 查询不执行级联删除
  • 如何在 Teradata 14 中对子字符串进行分组?

    我有下表天睿14 我不允许自己编写过程和函数 但我可以使用strtok strtok split to table etc id property 1 1234X Yel 2225Y Red 1234X Gre 2 3 1222Y Pin
  • 匹配来自两个不同数据帧的键

    我有两个数据框 df1 Name Stage Description key 0 Sri 1 Sri is one of the good singer in this two one 1 NaN 2 Thanks for reading
  • SSL 握手调试不再适用于 Apache Tomcat/9.0.0.M22

    我必须在 Tomcat 操作系统 MS Windows 上调试 SSL 握手 因此我按照网上找到的说明进行操作 并在 setenv bat 中使用以下行启用了它 设置 JAVA OPTS JAVA OPTS Djavax net debug
  • 为什么跨域 JSONP 安全,而跨域 JSON 不安全?

    我在连接最近了解 JSONP 的一些点时遇到了困难 这是我的理解 由于同源政策 禁止任何内容 包括 JSON 的跨域 XmlHttpRequest 这可以防止 XSRF 您可以使用带有返回 JSONP 的 src 的脚本标记 在对 Java
  • 滚动日志文件并删除旧日志文件

    我正在开发一个基于 Java SOAP 的 Web 服务应用程序 其中我将 stdout 作为日志写入文本文件以供参考 该文件正在巨大地增长 因此我需要检查文件的大小 例如 如果文件大小超过 10 Mb 我必须创建另一个文件 像这样 我必须
  • 如何在嵌套函数中传递对象?

    我正在尝试覆盖save 在 R 中 以便在保存对象之前创建任何丢失的目录 我在使用省略号方法将对象通过一个函数传递到另一个函数时遇到问题 我的例子 save lt function file Overridden save target d
  • 尝试获取类方法指针时出现 E_NOINTERFACE

    我从 C 非托管代码调用 C 方法 我在从数组中返回的类实例获取值时遇到问题 我稍微简化了代码 这是有问题的方法 return MarshalAs UnmanagedType SafeArray SafeArraySubType VarEn
  • 在表单中的 tabcontrol 中与用户控件进行通信

    我认为 C 很难 尝试在 stackoverflow 中发布问题 我在用户控件中有一个列表框和一个按钮 其本身位于选项卡控件的选项卡页中 其本身位于表单上 单击按钮时 我需要从表单填充列表框 表单 gt 选项卡控件 gt 标签页 gt 用户
  • 提供静态资源的路径(如 .jpg 等?)

    我已经解决了许多有趣的路由问题 将请求 URL 转换为哈希值等 但出于好奇 有没有办法告诉路由系统您想要某个 url 下的任何内容子路径按字面意思提供服务 不通过控制器 例如 如果我有 home me public html rails p
  • java.io.IOException:无法读取 zip 条目源

    FileInputStream file new FileInputStream file path report xlsx XSSFWorkbook wb new XSSFWorkbook file ERROR LINE 我在第二行收到错