fix:[FL-172][高程数据管理页面上传文件提交表单报错]
修复前端文件上传时文件对象未正确传递的问题。 问题根源: 错误信息显示 "Expected UploadFile, received: <class 'str'>, input: undefined", 说明 file 字段传递的不是有效的文件对象。 原因分析: 在 Ant Design Upload 组件中使用 beforeUpload 返回 false 时, fileList[0].originFileObj 可能为 undefined,导致传递了 undefined 到 FormData。 解决方案: 1. 添加 fallback 逻辑:const file = fileList[0].originFileObj || fileList[0] 2. 添加文件对象有效性检查,确保是 File 或 Blob 实例 3. 提供清晰的错误提示"无效的文件对象" 这样可以确保: - 兼容不同版本的 Ant Design Upload 组件 - 文件对象始终是有效的 File/Blob 实例 - 用户得到明确的错误反馈 Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -281,7 +281,11 @@ export default function ElevationRecordsPage() {
|
||||
if (fileList.length === 0) {
|
||||
throw new Error("请选择文件");
|
||||
}
|
||||
formData.append("file", fileList[0].originFileObj as Blob);
|
||||
const file = fileList[0].originFileObj || fileList[0];
|
||||
if (!file || !(file instanceof File || file instanceof Blob)) {
|
||||
throw new Error("无效的文件对象");
|
||||
}
|
||||
formData.append("file", file);
|
||||
if (values.source?.trim()) formData.append("source", values.source.trim());
|
||||
if (values.resolution_m) formData.append("resolution_m", values.resolution_m.toString());
|
||||
if (values.notes?.trim()) formData.append("notes", values.notes.trim());
|
||||
|
||||
Reference in New Issue
Block a user