【问题标题】:Sending FormData not working in React-Native发送 FormData 在 React-Native 中不起作用
【发布时间】:2017-11-01 15:26:25
【问题描述】:

我尝试与 API 通信以从 Iphone 发送图片。我使用 Postman 发送表单数据(键: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"}}}}

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

【问题讨论】:

  • 您可能遇到了一些错误?和更多与之相关的代码不会造成伤害:)
  • 是的,更新了帖子
  • 只需删除 Content-Type 即可,请参阅此处 stackoverflow.com/questions/35795529/…
  • 不,不工作:'(
  • 你从哪里得到图像 uri?

标签: javascript api react-native


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    你应该添加内容类型

    'Content-Type': type === 'form' ? 'multipart/form-data' : 'application/json',

    【讨论】:

      猜你喜欢
      • 2020-05-01
      • 2017-04-26
      • 1970-01-01
      • 2020-07-08
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多