[OfficeParser]:错误:ENOENT:没有这样的文件或目录,复制文件'C:\ Users

问题描述 投票:0回答:1

我正在尝试从用户上传的任何文档中提取文本,这是我的

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 项目中使用的其他解析库,我将很高兴。

node.js fileparsing
1个回答
0
投票

请尝试 [电子邮件受保护]v5,它不需要在存储上存储任何临时文件。它在内存中完成所有处理。它应该可以解决你的问题。请在这里告诉我,或者如果没有的话,请在 officeparser git repo 中创建一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.