如何使用React Native上传照片

时间:2018-12-14 12:31:30

标签: react-native file-upload fetch strapi

节点v10.14.1 npm v6.4.1 绑架v3.0.0@13.0.1

我正在尝试将使用“ PhotoUpload”组件拍摄的照片上传到Strapi。 尽管进行了各种测试,但服务器仍然显示错误500。

Insert_Files_Into_DataBase = () => {

const formdata = new FormData();
formdata.append("files:", this.state.image1); //Base64

this.setState(
  {
    ActivityIndicator_Loading: true
  },
  () => {
    fetch("" + NETWORK.SERVER_IP + ":1337/upload", {
      method: "POST",
      headers: {
        "Content-Type": "multipart/form-data",
        Authorization: "Bearer " + this.props.userToken.jwt
      },
      body: formdata
    })
      .then(response => response.json())
      .then(responseJsonFromServer => {
        alert(responseJsonFromServer + "Image1 OK!");
        this.setState({ ActivityIndicator_Loading: false });

      })
      .catch(error => {
        console.error(error);
        this.setState({ ActivityIndicator_Loading: false });
      });
  }
);
};

我的“ PhotoUpload”组件使我可以从图像中检索Base64。但这似乎不起作用。

使用Postman,一切正常

3 个答案:

答案 0 :(得分:1)

您是否正在iOS模拟器上执行此操作?我发现上传仅适用于真正的iOS设备。

答案 1 :(得分:0)

在上面的代码中,您要附加files:(带有冒号(:))。我认为,您应该在files中仅将FormData()附加为:

formdata.append("files", this.state.image1); //Base64

这种情况可能是您的收入达到500。否则,您应该附加files而不是files:

如果这可以解决您的问题,请不要忘记投票。 :)

答案 2 :(得分:0)

我发现了第一个错误! 我只是忘记了服务器地址中的“ HTTP://”。

现在,服务器将“ true”发回给我,但实际上并未上传图片