2

验证这些文件完整性的步骤是什么?doc,docx,docm,odt,rtf,pdf,odf,odp,xls,xlsx,xlsm,ppt,pptm

或者至少其中一些。通常在上传到内容存储库时。

我猜 inputStream 总是 99,99% 从 MultiPart http 请求中正确读取,否则会抛出异常并采取措施。但是用户可以上传已经损坏的文件 - 我是否使用第三方库来检查?我在 odftoolkit、itextpdf、pdfbox、apache poi 或 tika 中没有看到类似的东西

4

4 回答 4

2

“腐败”有很多种。

  • 一些损坏应该很容易检测到。例如,当您尝试打开一个截断的 ODF 文件时,它很可能会失败,因为 ZIP 阅读器无法读取它。

  • 其他人实际上是无法检测到的。例如,RTF 文件中的一个字符损坏将无法检测到,因此(我认为)大多数 RTF 文件截断。


如果您找到一个(免费)工具来为所有这些文件类型完成这项工作,我会感到惊讶,即使在技术上可行的范围内也是如此。当前一代用于读取/写入文档格式的开源库往往只关注一种格式。如果您对此很认真,您可能需要使用商业图书馆。

于 2011-07-25T01:01:00.500 回答
0

去检查 LibreOffice 项目(它已经处理了这些档案),它有一些用 Java 编写的部分,你肯定可以找到并使用它们的机制来检查损坏的文件。

我想你可以从这里得到代码:

http://www.libreoffice.org/get-involved/developers/

于 2011-07-26T00:57:41.180 回答
0

您可以在上传之前对文件进行校验和/哈希(即安全哈希),然后单独上传校验和。如果随后下载的文件具有相同的校验和,则它与原始文件没有更改(以一定的高概率,取决于所使用的校验和/散列)。

于 2011-07-25T00:30:59.367 回答
0

对于上面列出的所有文件格式,都有可以打开的第 3 方库等 - 我不知道“仅验证”,但我认为能够毫无例外地打开它们等至少是一项基本检查该文件在指定的格式内......一个这样的(商业)图书馆Aspose- 不附属,只是一个快乐的客户......

于 2011-07-25T00:16:53.587 回答