Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Variable is incompletely loaded in javascript

I am trying to convert image to base64. I have written the following code:

if (file)
{
    var reader = new FileReader();
    reader.onload = function(readerEvt)
    {
        alert(readerEvt.target.result);
        var image       = readerEvt.target.result;
        var base64image = image.split(',')[1];
        var key         = 'image'+i;
        images[key]     = image;
        //$('#image_preview').attr('src', readerEvt.target.result);
    };
    reader.readAsDataURL(file);
}

But when i alert the readerEvt.target.result it says 131494 characters but when i load it to a variable only 10001 characters is loaded. This makes the image incomplete when decoded back from base64. Any help will appreciated.

like image 235
Amarendra Reddy Avatar asked Oct 30 '22 04:10

Amarendra Reddy


1 Answers

I tried similar code to the code sample you tried above, and it allowed me to load a local image file into base64 data and populate an image accordingly, without error. Try this...

<input id="txtFile" type="file" onchange="loadFile();">
<br>
<img id="imgTest">
<script>
function loadFile() {
    var file = document.getElementById('txtFile').files[0];
    if (file) {
        var reader = new FileReader();
        reader.onload = function(readerEvt) {
            var image = readerEvt.target.result;
            var base64image = image.split(',')[1];
            console.log(readerEvt.target.result);
            document.getElementById('imgTest').src = readerEvt.target.result;
        };

        reader.readAsDataURL(file);
    } else {
        console.log('Exception');
    }
}
</script>

If it's still not working for you, then there is perhaps some problem with the image you are trying to load.

like image 73
ManoDestra Avatar answered Nov 08 '22 08:11

ManoDestra