我正在尝试将图片转换为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解码后图像不完整。任何帮助将不胜感激。
答案 0 :(得分:2)
我尝试了类似于上面尝试的代码示例的代码,它允许我将本地图像文件加载到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>
如果它仍不适合您,那么您尝试加载的图片可能存在一些问题。