Обещание File.readAsDataURL не выполняется - PullRequest
0 голосов
/ 20 апреля 2019

Добрый день,

Я пишу приложение Ionic, которое получает файл изображения из камеры / галереи, записывает его в папку (обе работы) и затем должно вставить в структуру JSON (реализовано как интерфейс, а затем преобразованос JSON.stringify).Непосредственно перед отправкой запроса метод считывает файл в строковую переменную со следующим кодом:

File.readAsDataURL(imagePath, imageName).then(res=>{
  console.log('It works.');
},err=>{
  console.log(err);
});

, где imagePath, например, file: /// data / user / 0 // files / 2b0d8450-14dc-44b3-ab28-322c5c2859e4 и imageName - Pasport_Famil_I._stranicza_s_fotografiej.jpg

Файл существует.Код работал нормально только один раз.Но в других случаях обещание никогда не было разрешено вообще.

Не имеет значения, «AsWhat» он читает (ArrayBuffer, BinaryString или даже Text) и даже со строгим разделением пути, как написано в ссылке на функцию (которую я мог найтитолько во всплывающей подсказке IDE, в соответствии с которой путь является File.dataDirectory, а файл остается частью полного пути) результат такой же (его отсутствие).

Я использую OpenJDK 8u191-b12-2ubuntu0.18.04.1, Ionic 4.12, версия его файлового плагина - 5.5.0, версия файла cordova-plugin-файла - 6.0.1

Пожалуйста, "помогите мне, вы моя единственная надежда" (C)

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

решаемая. Проблема была в забытом пользовательском коде в src / index.html.

0 голосов
/ 22 апреля 2019

Получить строку base64 с камеры / галереи

public takePhoto(){
const options: CameraOptions = {
  quality: 100,
  destinationType: this.camera.DestinationType.DATA_URL,
  encodingType: this.camera.EncodingType.JPEG,
  mediaType: this.camera.MediaType.PICTURE
}

this.camera.getPicture(options).then((imageData) => {
 // imageData is either a base64 encoded string or a file URI
 // If it's base64 (DATA_URL):
 let base64Image = 'data:image/jpeg;base64,' + imageData;
}, (err) => {
 // Handle error
});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...