Я боролся с этим некоторое время, и я собираюсь предоставить вам как можно больше информации (некоторые, возможно, неактуальны), потому что я полностью застрял. Я использую Ionic, и я хотел бы сделать снимок с моим телефоном и загрузить его в ведро AWS S3. Я использовал камеру Кордовы, чтобы выполнить это.
Насколько я знаю; эти фотографии выходят в большой строке base64, и я должен преобразовать его в Blob, преобразовать его в объект File, а затем загрузить этот файл в AWS. Однако, когда я делаю это, он всегда загружает его как нечто иное, чем изображение. Всякий раз, когда я его открываю, я получаю сообщение об ошибке:
"Not a valid bitmap file. its format is not currently supported."
https://s3.amazonaws.com/mng-moment/moment/PA/40.008446_-75.26046_1502414224619.jpg
Вот пример РАБОЧЕЙ РАБОТЫ (это обычно срабатывало так:)
https://s3.amazonaws.com/mng-moment/bestMoments/40.008446_-75.26046_1499659199473.jpg
Я попытался открыть каждый из них в текстовом редакторе, чтобы увидеть, что происходит. Для первого (разбитого) я получаю следующее:
Когда я пытаюсь открыть рабочий текст в текстовом редакторе, я получаю следующее:
Теперь это похоже на проблему преобразования, но я думаю, что я правильно ее конвертирую. Вот код, который я использую для загрузки (вы можете увидеть console.logs позже в сообщении):
core.js
awsServices.js
Если вы посмотрите на комментарии в коде, я обозначил некоторые из журналов консоли. Я покажу их здесь для получения дополнительной информации:
A - (uploadToAWS):
B - (awsServices.upload):
Вот как я конвертирую dataURI в Blob (вызывается в uplpoadToAWS - первый снимок экрана):
Это то, что передается в параметр dataURI в коде справа:
Если есть дополнительная информация, пожалуйста, дайте мне знать. Некоторое время я царапаю голову. Любая помощь приветствуется. Спасибо!