有没有一些方法可以用node.js检查文件是否损坏?
我尝试了很多文件系统方法,比如fs.readFile
、fs.open
和fs.access
,但它们都返回了"ok"状态,而我在测试中确定我的文件已损坏。
更清楚地说,我的目标是检查PDF文件是否可读(不仅仅是检查是否可以生成),以及它是否可以被打开。我在线上损坏了这个文件来测试。
有没有一些方法可以用node.js检查文件是否损坏?
我尝试了很多文件系统方法,比如fs.readFile
、fs.open
和fs.access
,但它们都返回了"ok"状态,而我在测试中确定我的文件已损坏。
更清楚地说,我的目标是检查PDF文件是否可读(不仅仅是检查是否可以生成),以及它是否可以被打开。我在线上损坏了这个文件来测试。
您可以尝试使用类似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");
实际上,您可以使用另一个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结构