Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Base64 from imageURI with PhoneGap

I'm trying to get the base64 from an image that picked from the album on my phone, but I cannot make it work:

I tried this:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
    console.log("0");
    fileSystem.root.getFile(imageURI, null, function(fileEntry) {
        console.log("1");
        fileEntry.file(function(file) {
            console.log("2");
            var reader = new FileReader();
            reader.onloadend = function(evt) {
                console.log("Read complete!");
                image64.value = Base64.encode(evt.target.result);
            };
            reader.readAsText(file);
        }, failFile);
    }, failFile);
}, failSystem);

Although the image is displayed correctly.. I receive an error from this function:

fileSystem.root.getFile(imageURI, null, function(fileEntry)

And the error is: FileError.ENCODING_ERR

I know that code doesn't look pretty. But I don't know how to get the Base64 encoding from an imageURI.

like image 456
SERPRO Avatar asked Dec 07 '22 15:12

SERPRO


1 Answers

The above method from SERPRO works...but i have to change

reader.readAsText(file);
to
reader.readAsDataURL(file);

Thus, line

image64.value = Base64.encode(evt.target.result);

can be removed and the base64 result can be directly extracted as

image64.value = evt.target.result;
like image 111
smanandhar Avatar answered Dec 23 '22 03:12

smanandhar