现象
FastGPT 4.8.9及后续版本支持文件上传功能,但原生仅支持解析.txt, .docx, .csv, .xlsx, .pdf, .md, .html, .pptx格式文件。使用xls、doc、ppt等早期Office格式文件时,无法直接完成解析。通过Python转换后的xls、doc可正常通过API调用文档解析,但转换后的pptx文件解析会触发报错,报错信息包括[xmldom error] invalid doc source,以及TypeError: Cannot read properties of undefined (reading 'getElementsByTagName'),堆栈信息指向/app/projects/app/.next/server/worker/readFile.js相关代码。
可能原因
前端可能存在文件后缀拦截逻辑,后端文档解析模块原生未适配xls、doc、ppt等早期Office格式的直接解析。转换后的pptx文件虽可正常打开,但仍存在解析异常的情况。
排查步骤
- 确认待解析文件格式,检查是否为xls、doc、ppt等早期Office格式。
- 通过API接口发起文件解析请求,记录返回的报错文本与堆栈信息。
- 使用Python工具将xls、doc、ppt转换为docx、xlsx、pptx格式,确认转换后的文件可正常打开。
- 调用FastGPT文档解析API,验证转换后的文件解析结果。
解决与验证
可通过提前转换文件格式的方式处理该问题。使用Python将doc、xls、ppt转换为docx、xlsx、pptx格式,转换后的文件可通过API正常调用文档解析。需按实际环境确认转换后的pptx文件是否存在解析异常。验证方式为上传转换后的docx、xlsx、pptx文件,确认可正常完成文档解析流程。