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

时间:2013-04-14 11:35:32

标签: 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]));
    });
});

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

1 个答案:

答案 0 :(得分:8)

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

您必须绑定onload事件才能捕获结果:

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