fetch 发送 [object Object] 而不是 File 对象

Pou*_*ria 5 react-native

我正在使用Expo及其ImagePicker从图库中抓取图像。它同时返回uribase64

现在我想在multipart/form-data请求中上传图像。

问题是服务器只File在下面的代码发送时才接受[object Object]

请求的图像

const formData = new FormData();

const data = {
  jwt,
};

formData.append('message', JSON.stringify(data));

formData.append('avatar', {
  uri: avatar,
  type: 'image/png',
  name: 'avatar.png'
});

fetch(url, {
  method: 'POST',
  body: formData,
  headers: {
    Accept: 'application/json',
  },
})
Run Code Online (Sandbox Code Playgroud)

由于我使用的是 Expo,因此我仅限于它支持的库。此外,添加Content-Type标头根本不起作用,服务器甚至无法识别该消息。

Roy*_*ysh 1

如果您看到该文件按照请求参数发送[object object],则可能由于以下两个原因而发生:

  1. 您发送的文件不是文件(或不是文件对象)。FormData 应该只接收FileBlob对象,以便根据请求发送。请注意,您的对象上有正确的键,并且它确实是一个文件或一个 Blob。

  2. 如前所述,这可能是Content-Type不应设置的标头