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:
chengkai3
2026-06-21 14:07:20 +08:00
parent a7650065cc
commit e45f8109cc
+5 -1
View File
@@ -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());