2011-08-09 40 views
1

我想不通爲什麼既不readSuccess()readFailure()越來越稱爲在以下幾點:HTML5的FileReader()函數沒有得到所謂的

function readMyFile(){ 
    var reader = new FileReader(); 

    reader.onload = readSuccess; 
    reader.onerror = readFailure; 
    reader.readAsText("test.txt"); 

    function readSuccess(evt){ 
     alert(evt.target.result); 
    } 

    function readFailure(evt) { 
     alert("Did not read file!"); 
    } 
} 

當我一步,雖然在Chrome的JavaScript調試器的代碼,它的步驟過去reader.readAsText("test.text");命令,但後來退出了整體功能,從來沒有叫readSuccess()readFailure()

回答

1

不能在reader.readAsText()指定一個字符串的文件時,它需要一個Blob參考:see the documentation

您應該從文件類型輸入字段中獲取Blob,檢出these awesome examples

+0

啊,好的,謝謝。如果我想自己指定一個文本文件(這是用於只讀一次的內部文件)。 –

+0

從輸入元素的FileList中獲取'File'是當前唯一一種通過JavaScript從瀏覽器獲取本地文件的方式 - 但是要感謝你的明星們,在HTML5之前根本沒有辦法:http: //stackoverflow.com/questions/371875/local-file-access-with-javascript – nwellcome

+0

呵呵。好的謝謝! –