Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 71531

Convert File URI to Blob

$
0
0

@NathanBlaise wrote:

I’m attempting to use cordova-plugin-camera to retrieve an image and upload it to Firebase. Many common solutions use the Base64 format to do so but I would like to avoid that in light of performance issues and use File URI instead.

The best solution for Android I’ve seen for this is as follows:

makeFileIntoBlob(_imagePath) {
return new Promise((resolve, reject) => {
        window.resolveLocalFileSystemURL(_imagePath, (fileEntry) => {

          fileEntry.file((resFile) => {

            var reader = new FileReader();
            reader.onloadend = (evt: any) => {
              var imgBlob: any = new Blob([evt.target.result], { type: 'image/jpeg' });
              imgBlob.name = 'sample.jpg';
              resolve(imgBlob);
            };

            reader.onerror = (e) => {
              console.log('Failed file read: ' + e.toString());
              reject(e);
            };

            reader.readAsArrayBuffer(resFile);
          });
        });
      });
    }

I think there have been some updates to the cordova-plugin-file for Ionic so that I now perform:

makeFileIntoBlob(imagePath) {
    this.file.resolveLocalFilesystemUrl(imagePath).then((fileEntry) => {
      fileEntry.file //Not a method
    }, (err) => {
      console.log("Put error message here");
    })
  }

as resolveLocalFilesystemUrl now returns a promise. The returned FileEntry appears to have almost every method available except .file() which I need to complete the conversion to Blob. Is there anyway to fix this or any other ways to do this?

Many Thanks

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 71531

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>