如何将readAsDataURL()的值赋给变量?

Pee*_*aha 2 javascript jquery file-upload filereader

好吧所以我看到很多关于使用readAsDataURL()的例子和问题,但它们似乎都没有解决我的问题.以下是我的代码:

$(document).ready(function(){
    var fileReader = new FileReader();
    $("form").submit(function(e){
        e.preventDefault();
        console.log(fileReader.readAsDataURL(document.getElementById("userfile").files[0]));
    });
});
Run Code Online (Sandbox Code Playgroud)

我在控制台得到的是undefined.我试图在变量上获取base64编码的文件数据,以便我可以使用ajax上传它.谁能告诉我我做错了什么?

Rob*_*b W 9

FileReader实例的大多数方法都异步报告结果.

您必须绑定一个onload事件来捕获结果:

var fileReader = new FileReader();
fileReader.onload = function(event) {
    console.log(event.target.result);
};
fileReader.readAsDataURL(document.getElementById("userfile").files[0]);
Run Code Online (Sandbox Code Playgroud)