检查文件是否损坏,使用 Node.js。

4

有没有一些方法可以用node.js检查文件是否损坏?

我尝试了很多文件系统方法,比如fs.readFilefs.openfs.access,但它们都返回了"ok"状态,而我在测试中确定我的文件已损坏。

更清楚地说,我的目标是检查PDF文件是否可读(不仅仅是检查是否可以生成),以及它是否可以被打开。我在线上损坏了这个文件来测试。


3
首先定义“corrupted”(损坏)。“不包含我的大脑认为应该包含的内容”并不是计算机可以测试的内容。 - Quentin
我更新了问题@Quentin - BrTkCa
2个回答

5

您可以尝试使用类似pdf2json这样的工具对其进行解析,并确认是否成功。

以下是从链接中提取的示例代码:

let fs = require('fs'),
    PDFParser = require("pdf2json");

let pdfParser = new PDFParser();

pdfParser.on("pdfParser_dataError", errData => console.error(errData.parserError) );
pdfParser.on("pdfParser_dataReady", pdfData => {
    fs.writeFile("./pdf2json/test/F1040EZ.json", JSON.stringify(pdfData));
});

pdfParser.loadPDF("./pdf2json/test/pdf/fd/form/F1040EZ.pdf");

1

实际上,您可以使用另一个npm来检查pdf文件的损坏。

npm i pdf-parse

const pdfParser = require('pdf-parse')
try {
  let bufferData = fs.readFileSync(`${target}/corrupted.pdf`)
  pdfParser(bufferData).then((data) => {
    // do something with data
  }).catch((error) => {
    console.log(error.message)
  })
} catch (error) {
  console.log(error)
}

对于损坏的文件,错误可能会显示为:
警告:正在索引所有PDF对象
无效的PDF结构


感谢分享,@DineshReddy。看了一下项目页面,最后一次贡献/更新似乎是4年前了。你知道这个项目是否仍在支持错误修复和升级新架构吗? - BrTkCa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接