我正在尝试从用户上传的任何文档中提取文本,这是我的
extractFromFile
功能。
import { parseOfficeAsync } from "officeparser";
export async function extractTextFromFile(filePath: string): Promise<string> {
try {
const data = await parseOfficeAsync(filePath);
return data.toString();
} catch (error) {
console.log(error);
return "File has not been parsed";
}
}
下面是我调用这个
extractTextFromFile
函数的地方:
const handleFileUpload = async (req: Request, res: Response) => {
if (!req.file) {
return res.status(400).json({ error: "No file uploaded" });
}
// Extract text from the uploaded file
const extractedText = await extractTextFromFile(req.file.path);
console.log("extracted text: " + extractedText);
return extractedText;
}
这是我定义文件上传的路线:
router.post("/upload", upload.single('file'), handleFileUpload)
请注意,我已经安装了officeparser
npm i officeparser
现在,我收到以下错误:
[OfficeParser]:错误:ENOENT:没有这样的文件或目录,复制文件 'C:\Users\Administrator\Documents\My Documents\Programming\MERN\Quizme\server\uploads 3428f2277a7475f4e407753ed5c130a' -> 'C:\Users\Administrator \Documents\我的文档\Programming\MERN\Quizme\server\officeParserTemp empfilesz189849682200000.uploads 3428f2277a7475f4e407753ed5c130a' 提取的文本:文件尚未解析
在我的控制台中。
出现此错误时,我已在源目录中确认,并且正在创建保存上传文件的
uploads
目录。查看错误消息,OfficeParser 正在尝试将上传的文件复制到临时目录中的临时文件中,但只创建了这些目录的一部分,而不是全部。
发送上传请求时会创建 ....\server\officeParserTemp\tempfiles\
。但 172189849682200000.uploads\
不存在,上传的文件必须复制到其中的文件也不存在。
我尝试手动创建
172189849682200000.uploads\
文件夹,但这也不起作用。
这是我到目前为止所尝试过的。
如果您还可以建议我可以在我的 Nodejs 项目中使用的其他解析库,我将很高兴。
请尝试 [电子邮件受保护] 的 v5,它不需要在存储上存储任何临时文件。它在内存中完成所有处理。它应该可以解决你的问题。请在这里告诉我,或者如果没有的话,请在 officeparser git repo 中创建一个问题。