Я пытаюсь загрузить какое-то изображение из галереи камеры на локальный компьютер и среду разработки. Мой код работает с действительным URL-адресом, например: https://res.cloudinary.com/dtdiwoz7o/image/upload/v1586706052/cn-2016-sashaonyshchenko-1920x1920-1510074905_dyfldk.jpg Но когда я передаю путь к файлу изображения, он возвращает ошибку 400. Вот мой код с некоторым журналом:
_avatarClicked = () => {
const options = {
title: 'Select Photo',
storageOptions: {
skipBackup: true,
path: 'images',
},
};
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel) {
return
}
else if (response.error) {
return
}
else {
let data = {
file: response.uri,
upload_preset: "my_preset_name",
}
axios.post("https://api.cloudinary.com/v1_1/my_cloud_name/image/upload", data)
.then(res => console.log(res))
.catch(err => console.log(err))
}
})
}
журнал моего repsponse.uri: (файл: /// Пользователи / clement / Библиотека / Разработчик / CoreSimulator / Devices / 62E85527 -A2A C -46CD-B517-E6039F99E056 / данные / Контейнеры / данные / приложения / E218E950-3A1 C -40EB-8289-3837EC89FBBB / Документы / изображения / 46674162-E32B-4302-B28A-5EF9150206D0.jpg)
Я пытался заменить это в файле данных на этот «постоянный источник», но он не работает:
const source = {
uri: response.uri,
type: response.type,
name: response.fileName,
}
Я видел и проверял это в документации по программе выбора изображений). но у меня такая же ошибка 400 ...
// const source = { uri: 'data:image/jpeg;base64,' + response.data };
Я также пытаюсь использовать Base64.encode (response.url) или Base64.encodeURI (response.url)
Пожалуйста, можешь помочь мне ? И извините за мой плохой engli sh
"Reaction-native": "~ 0.61.4", "Reaction-native-image-picker": "^ 2.3.1",
///////////////////////////
Я нашел решение:
let data = {
file: 'data:image/jpg;base64,' + response.data,
upload_preset: "my_preset_name",
}
axios.post("https://api.cloudinary.com/v1_1/my_cloud_name/image/upload/", data)
.then(res => console.log(res))
.catch(err => console.log(err))