2017-05-06 113 views
2

我正在尝试使用抓取将图像文件上传到我的服务器。这里是我的代码,我使用:反应原生提取文件上传错误

var formData = new FormData(); 
    formData.append('photo', {uri: './tempImageStore/image.jpg', name: 'photo', type: 'image/jpg'}); 

 <Button 
     onPress={() => fetch('http://localhost:8000/upload', { 
      method: 'POST', 
      headers: { 
      "Accept": "multipart/form-data", 
      "Content-Type": "multipart/form-data" 
      }, 
      body: formData 
      }) 
     } 
     title={'Upload File'} 
     /> 

然而,当我跑我的应用程序,并按下Upload File按钮,我得到一个错误说:

enter image description here

我不知道我做错了什么,或者如果这是上传照片到服务器的正确方法。

+0

如果您不能使用它:我已经与这个库运气。 [RN Fetch Blob](https://github.com/wkh237/react-native-fetch-blob)。 –

+0

我喜欢那个库更好,但我也得到了一个错误:http://stackoverflow.com/questions/43835848/react-native-fetch-blob-undefined-is-not-an-object-evaluating- rnfetchblob-DO – pudility

回答

1

是的,它可能只上传一个图像与获取API。

我面临同样的问题,我解决了它与此:

首先,请确保在URL的开头删除file//,你可以做这样的事情

const fileURL = "file:///Users/juordergonzalezquinonez/Library/Developer/CoreSimulator/Devices/046E9C13-5D5D-4463-82DD-256501874EBF/data/Containers/Data/Application/839C5E04-46BB-4F9B-BF53-3FDFF639F340/tmp/react-native-image-crop-picker/C07E6B9E-3113-41C2-AD80-A768DF33C263.jpg"; 
const cleanURL = fileURL.replace("file://", ""); 

然后在提取请求中,请确保您的标题必须如下所示:

headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'multipart/form-data;' 
},