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

时间:2018-06-19 09:52:51

标签: react-native

我使用Expo及其ImagePicker从图库中抓取图片。它会返回uribase64

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

问题是服务器只接受File而代码发送[object Object]

Image of the request

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',
  },
})

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

1 个答案:

答案 0 :(得分:0)

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

1)您要发送的文件不是或不是文件对象。

FormData应该接收FileBlob对象,以便根据请求发送。请注意,您在对象上具有正确的键,并且它是文件或Blob。

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