2017-06-22 144 views
0

我正嘗試將圖片直接從react-native應用程序上傳到cloudinary。我在反應本機端使用Expo Imagepicker並使用axios執行POST請求。我得到一個「400錯誤的請求」從Cloudinary錯誤消息 -將圖片從expo Imagepicker上傳到Cloudinary

不支持的來源網址:數據%3Aimage%2Fjpg%3Bbase64%2CZmlsZTovLy9kYXRhL3VzZXIvMC9ob3N0LmV4cC5leHBvbmVudC9jYWNoZS9FeHBlcmllbmNlRGF0YS8lMjU0MGFub255bW91cyUyNTJGZXhwb3Rlc3QtZWY2NWJjYjktYTFiMC00N2JlLWE3ZDUtMmNmNThhOGM5ZWU1L0ltYWdlUGlja2VyL2NiN2FmMTUzLTA2OWItNDdlZS05NDdkLWU2ZDk1YTQ1MzI2Yi5qcGc%3D

代碼到位如下

添加
let uri64 = base64.encode(uri); 
let fileData = "data:image/jpg;base64," + uri64; 
console.log('html escape: ' + encodeURIComponent(fileData)); 

let data = { 
    upload_preset: CLOUDINARY_UPLOAD_PRESET, 
    file: encodeURIComponent(fileData) 
} 
return axios.post(CLOUDINARY_UPLOAD_URL,data); 
+0

你可以運行你的代碼而不編碼'fileData',看看它是否有幫助嗎? –

回答

0

Expo添加了一個選項,可以從SDK18中的imagepicker生成base64。我已經編寫了一個base64傳遞給它的API,它將調用cloudinary方法。