Javascript 如何将用户上传的图像转换到Base64

Javascript 如何将用户上传的图像转换到Base64,javascript,jquery,base64,Javascript,Jquery,Base64,我已经制作了一个简单的日志系统,其中我从文本字符串中获取Base64代码: var myString = 'Hello everyone, my name is Dennis'; var b64 = btoa(myString); var unicode = atob(b64); console.log(b64); console.log(unicode); 正如我所说,输出是Base64代码,但我试图将上传的图像转换为Base64。这是我到目前为止得到的,我从中得到的输出是base64代码中

我已经制作了一个简单的日志系统,其中我从文本字符串中获取Base64代码:

var myString = 'Hello everyone, my name is Dennis';
var b64 = btoa(myString);
var unicode = atob(b64);
console.log(b64);
console.log(unicode);
正如我所说,输出是Base64代码,但我试图将上传的图像转换为Base64。这是我到目前为止得到的,我从中得到的输出是base64代码中的整个网页。我希望有人能帮助我

function toDataUrl(url, callback) {
  var xhr = new XMLHttpRequest();
  xhr.responseType = 'blob';
  xhr.onload = function() {
    var reader = new FileReader();
    reader.onloadend = function() {
      callback(reader.result);
    };
    reader.readAsDataURL(xhr.response);
  };
  xhr.open('GET', url);
  xhr.send();
}



//use

var captcha = document.getElementById('logo').src;
toDataUrl(captcha, function(base64Img) {
    log(captcha);
});

提前感谢

在这里,我为您提供了一个工作示例,如果副本对您没有帮助: (如果您的图像不在请求的同一域中,请注意CORS)

函数toDataUrl(src,回调){ var img=新图像(); img.crossOrigin='匿名'; img.onload=函数(){ var canvas=document.createElement('canvas'); var ctx=canvas.getContext('2d'); var-dataURL; canvas.height=this.height; canvas.width=this.width; ctx.drawImage(this,0,0); dataURL=canvas.toDataURL(); 回调(dataURL); }; img.src=src; } toDataUrl(“http://i.imgur.com/rx3kylA.png,函数(base64Img){ 控制台日志(base64Img);
});可能与@GilleQ重复。是的。@GilleQ。我已经看过那篇文章了,但是我想不出来,谢谢你的帮助。这个图片是在同一个域名上吗?考虑使用CORSXHR@AdamAzad目前我只是在本地主机上工作,所以还没有域