Загрузка в Cloudinary API – неверный параметр файлаIOS

Программируем под IOS
Ответить
Anonymous
 Загрузка в Cloudinary API – неверный параметр файла

Сообщение Anonymous »

Я работаю над интеграцией Cloudinary с моим приложением React Native и столкнулся с проблемой при загрузке с помощью API Cloudinary. Я использую React Native Image Picker, чтобы выбрать изображение из фотопленки, и с его помощью получаю исходный URI — пример ниже.

Я получаю ответ об ошибке от Cloudinary и не понимаю, о чем он говорит. «Неверный параметр файла. Убедитесь, что ваш параметр файла не содержит '[]'»

Когда я использую отладчик, я могу консольно выйти из системы параметры, которые я отправляю в теле моего запроса. Будем очень признательны за любые предложения!

source.uri: /Users/IRL/Library/Developer/CoreSimulator/Devices/817C678B-7028-4C1C-95FF-E6445FDB2474/data/Containers/Data/Application/BF57AD7E-CA2A-460F-8BBD-2DA6846F5136/Documents/A2F21A21-D08C-4D60-B005-67E65A966E62.jpg

async postToCloudinary(source) {
let timestamp = (Date.now() / 1000 | 0).toString();
let api_key = ENV.cloudinary.api;
let api_secret = ENV.cloudinary.api_secret
let cloud = ENV.cloudinary.cloud_name;
let hash_string = 'timestamp=' + timestamp + api_secret
let signature = CryptoJS.SHA1(hash_string).toString();
let upload_url = 'https://api.cloudinary.com/v1_1/' + cloud + '/image/upload'

try {
let response = await fetch(upload_url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file: {
uri: source.uri,
type: 'image/jpeg'
},
api_key: api_key,
timestamp: timestamp,
signature: signature
})
});

let res = await response.json();
console.log(res);
} catch(error) {
console.log("Error: ", error);
}




ОБНОВЛЕНИЕ
Итак, теперь у меня работает кодировка base64. Думаю, но все равно получаю ту же ошибку.

var wordArray = CryptoJS.enc.Utf8.parse(source.uri);
var file = CryptoJS.enc.Base64.stringify(wordArray);

try {
let response = await fetch(upload_url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file: {
uri: file,
type: 'image/jpeg;base64'
},
api_key: api_key,
timestamp: timestamp,
signature: signature
})
});


Подробнее здесь: https://stackoverflow.com/questions/400 ... -parameter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»