2013-04-14 126 views
0

好吧,所以我見過很多關於使用readAsDataURL()的例子和問題,但是他們都沒有解決我的問題。以下是我的代碼:如何將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上傳它。任何人都可以告訴我我做錯了什麼?

回答

6

FileReader實例的大多數方法都異步報告結果。

你必須綁定一個onload事件捕捉到的結果:

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

這段代碼在IE9 – PRASANTH

+1

兼容@PRASANTH沒有,看https://developer.mozilla.org/en-US/docs/網絡/ API /#的FileReader Browser_compatibility。如果您需要IE9的這種API,請嘗試使用polyfill。這一個:https://github.com/Jahdrien/FileReader –

+0

雅當然謝謝你的答覆,並會告訴你,如果它證明生產力 – PRASANTH