现象
将doc、xls、ppt文件转换为docx、xlsx、pptx格式后,通过FastGPT文档解析模块处理时,docx与xlsx文件可正常解析,但pptx文件触发报错。报错信息包含:[xmldom error] invalid doc source @#[line:0,col:undefined],以及TypeError: Cannot read properties of undefined (reading 'getElementsByTagName'),完整调用栈指向/app/projects/app/.next/server/worker/readFile.js相关代码段。转换生成的pptx文件可正常打开,python转换日志显示转换请求返回200状态码且转换流程正常。
可能原因
报错指向FastGPT文档解析模块在读取文件时无法获取预期的DOM节点。由于转换后的pptx文件可正常打开,推测问题可能与转换后文件的内部结构与FastGPT文档解析模块的处理逻辑不匹配有关,具体根因需结合实际环境进一步确认。
排查步骤
- 确认原始文件已完成格式转换,且转换后的docx、xlsx、pptx文件可正常打开。
- 检查FastGPT文档解析模块的调用参数与文件路径,确保符合模块要求。
- 复现文件上传与解析流程,抓取完整报错日志,确认是否出现指定的xmldom错误与TypeError报错。
- 对比可正常解析的转换文件与异常pptx文件的内部结构,需按实际环境确认具体差异点。
解决与验证
- 使用python工具执行格式转换,将doc文件转换为docx(使用MS Word 2007 XML过滤器)、xls转换为xlsx(使用Calc Office Open XML过滤器)、ppt转换为pptx(使用Impress MS PowerPoint 2007 XML过滤器),确保转换后的文件可正常打开。
- 通过FastGPT提供的API调用文档解析模块,传入转换后的文件。
- 验证解析结果,确认docx、xlsx文件可正常解析,pptx文件的报错问题已解决。