使用Fetch将映像从React Native上传到Loopback API

时间:2016-11-02 18:18:22

标签: android react-native loopbackjs

您好这是我第一次尝试构建API。我想要做的是将保存在手机上的图像通过本地反应发送到一个环回容器,以便将图像保存在我的计算机上。我无法正确格式化表单数据,因此图像将被环回接受。我一直在努力:

let photo = {names: 'file', uri:'file:///storage/emulated/0/Pictures/IMG_20161028_094032.jpg'}
let formdata = new FormData();
formdata.append(photo.names, photo.uri)

fetch('http://192.168.0.15:3000/api/containers/container2/upload',{
method: 'POST',
body: formdata
}).then(response => {
}).catch(err => {
})

我得到的回应是:

_bodyText: '{"result":{"files":{},"fields":{"file":["file:///storage/emulated/0/Pictures/IMG_20161028_094032.jpg"]}}}' }

哪个不正确,因为该文件应位于“文件”而不是“字段”

1 个答案:

答案 0 :(得分:1)

尝试使用xhr代替fetch。这是此方案的example provided by Facebook ...

// Polyfill for XMLHttpRequest2 FormData API, allowing multipart POST requests with 
// mixed data (string, native files) to be submitted via XMLHttpRequest.

var photo = {
  uri: uriFromCameraRoll,
  type: 'image/jpeg',
  name: 'photo.jpg',
};

var body = new FormData();
body.append('authToken', 'secret');
body.append('photo', photo);
body.append('title', 'A beautiful photo!');

xhr.open('POST', serverURL);
xhr.send(body);