Файл плагина Cordova не возвращает файл из fileEntry - PullRequest
0 голосов
/ 21 мая 2019

вот мой код:

window.resolveLocalFileSystemURL(cameraCallback, (fileEntry) => {
  this.teste1 = fileEntry
  fileEntry.file(function (file) {
    this.teste2 = file
    let reader = new FileReader()
    reader.onloadend = function (e) {
      this.teste3 = this.result
    }
    reader.readAsDataURL(file)
  })
}, (error) => {
  this.teste4 = error
})

, где cameraCallback - это изображение "file: /// path / to / file", которое существует.Я хочу прочитать это изображение как файл, но this.teste2 возвращается пустым.this.teste3 также возвращает пустое значение.

Вот мой файл:

Запись файла {"isFile": true, "isDirectory": false, "name": "1558418616412.jpg"," fullPath ":" /Android/data/org.cordova.quasar.app/cache/1558418616412.jpg "," filesystem ":" "," nativeURL ":" file: /// storage / emulated / 0 /Android / data / org.cordova.quasar.app / cache / 1558418616412.jpg "}

Как я могу решить эту проблему?Я пробовал много комбинаций ответа, меняя функцию считывателя (e), это проблема асинхронности?Не получил никакого ответа, пример.

Как я могу прочитать мой fileEntry как изображение blob / file / base64?

1 Ответ

0 голосов
/ 02 июня 2019

Вы пробовали

let self = this

window.resolveLocalFileSystemURL(cameraCallback, (fileEntry) => {

     self.teste1 = fileEntry

     fileEntry.file(function (file) {

       self.teste2 = file

       let reader = new FileReader()

       reader.onloadend = function (e) {

         self.teste3 = self.result

       }

       reader.readAsDataURL(file)

     })

    }, (error) => {

     self.teste4 = error

    })
...