Загруженный файл камеры Cordova поврежден, но использование типа ввода=»файл» в порядке

#javascript #html #cordova #file-upload #cordova-plugins

Вопрос:

Я пытаюсь загрузить изображения в aws s3, используя URL-адрес с подписью. Я хочу, чтобы пользователь мог выбирать из библиотеки изображений / живого захвата.

Это и есть код:

 navigator.camera.getPicture(file => {
  // file = file:///data/user/0/app.bundle.id/cache/icon.png?1678918325411
})
 

Теперь при передаче этого файла в aws s3 с помощью axios фактический файл поврежден и не может быть открыт.

При выполнении того же действия, используя input type="file" /> его, он работает, и изображение успешно загружается:

 const changed = e => {
  const [ file ] = e.target.files
}
<input type="file" onChanged={changed} />
 

Я попытался получить данные выбранного/загруженного изображения с помощью base64 и отправить его в виде, но это не сработало.

Итак, как я загружаю его правильно?