javascript 中的变量未完全加载

Variable is incompletely loaded in javascript

我正在尝试将图像转换为 base64。我写了下面的代码:

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);
}

但是当我提醒 readerEvt.target.result 它说 131494 个字符但是当我将它加载到一个变量时只加载了 10001 个字符。这使得从 base64 解码回来的图像不完整。任何帮助将不胜感激。

我尝试了与您在上面尝试的代码示例类似的代码,它允许我将本地图像文件加载到 base64 数据中并相应地填充图像,没有错误。试试这个...

<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>

如果仍然无法正常工作,则可能是您尝试加载的图片有问题。