贝利信息

FormData上传XML文件 如何使用FormData对象发送文件

日期:2026-01-18 00:00 / 作者:畫卷琴夢
FormData 传 XML 文件需用 Blob 或 File 对象,显式指定文件名,fetch 不设 Content-Type;后端须从文件对象而非 body 读取,注意网关上传限制。

FormData.append() 传 XML 文件时的正确写法

XML 文件本质是文本,但浏览器上传时必须作为 BlobFile 对象传入,不能直接传字符串。否则后端收到的是纯文本内容,丢失文件名、MIME 类型,且部分服务端框架(如 Express 的 multer)会跳过解析。

常见错误:

formData.append('file', '1');
——这传的是字符串,不是文件。

XML 文件名必须显式指定

FormData.append() 的第三个参数是文件名。不传会导致后端无法获取原始文件名(例如 PHP 的 $_FILES['file']['name'] 为空,Node.js 的 multer 默认 fallback 为 undefined)。

fetch 发送时不要设 Content-Type

使用 fetch 上传 FormData 时,**绝对不要手动设置 Content-Type 头**。浏览器会自动设置为 multipart/form-data; boundary=...,并注入正确的分隔符和字段

格式。

后端接收 XML 文件的注意事项

前端发得对,不代表后端能正常读。关键点在于:XML 是文件上传,不是 JSON 提交,所以不能依赖 req.body(那是表单 URL-encoded 或 JSON 解析后的结果)。