2017-05-06 105 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;' 
},