发送FormData在React-Native

时间:2017-11-01 15:26:25

标签: javascript api react-native

我尝试与API通信以从Iphone发送图片。我使用邮递员发送表单数据(密钥:mainPicture,值'我选择的文件')并且它运行良好。

当我尝试在js中执行此操作时出现问题:API未在我的请求中找到该文件。

这是我的代码:

  const formData = new FormData();
  formData.append('mainPicture', {
    uri: mainPicture.uri,
    type: 'image/jpg',
    name: `${mainPicture.id}.jpg`,
  });
  // ...
  // api come from apisauce package
  api.post(API_RES_IMG, formData, { headers: { ['Content-Type']: 'multipart/form-data' } })

服务器说:"错误:多部分:未找到边界"

没有服务器收到的内容类型:

{"_parts":{"0":{"0":"mainPicture","1":{"uri":"assets-library://asset/asset.JPG?id=DE830A54-2526-44CB-81FE-00786D152080&ext=JPG","type":"image/jpg","name":"1e23519b-2006-4676-b63c-624e8198e17b.jpg"}}}}

从简单的事情中挣扎太多。

2 个答案:

答案 0 :(得分:0)

我在这里看到的几个问题:

1)当使用fetch API时,我们不需要设置Content-Type标头,因为fetch会处理这个问题,而且它还会负责填充边界。我假设这与apisauce相同,但我可能错了。

2)type:'image / jpg'不是有效的mime类型。它应该是:'image / jpeg'。

答案 1 :(得分:0)

您应该添加内容类型

'Content-Type':类型==='form'吗? 'multipart / form-data':'application / json',