HTML5定義了FileReader做爲文件API的重要成員用於讀取文件,根據W3C的定義,FileReader接口提供了讀取文件的方法和包含讀取結果的事件模型。javascript
FileReader的使用方式很是簡單,能夠按照以下步驟建立FileReader對象並調用其方法:html
if(window.FileReader) { var fr = new FileReader(); // add your code here }else{ alert("Not supported by your browser!"); }
FileReader 的實例擁有 4 個方法,其中 3 個用以讀取文件,另外一個用來中斷讀取。下面的表格列出了這些方法以及他們的參數和功能,須要注意的是 ,不管讀取成功或失敗,方法並不會返回讀取結果,這一結果存儲在 result屬性中。java
方法名 | 參數 | 描述 |
---|---|---|
abort | none | 中斷讀取 |
readAsBinaryString | file | 將文件讀取爲二進制碼 |
readAsDataURL | file | 將文件讀取爲 DataURL |
readAsText | file, [encoding] | 將文件讀取爲文本 |
readAsText:該方法有兩個參數,其中第二個參數是文本的編碼方式,默認值爲 UTF-8。這個方法很是容易理解,將文件以文本方式讀取,讀取的結果便是這個文本文件中的內容。
readAsBinaryString:該方法將文件讀取爲二進制字符串,一般咱們將它傳送到後端,後端能夠經過這段字符串存儲文件。
readAsDataURL:這是例子程序中用到的方法,該方法將文件讀取爲一段以 data: 開頭的字符串,這段字符串的實質就是 Data URL,Data URL是一種將小文件直接嵌入文檔的方案。這裏的小文件一般是指圖像與 html 等格式的文件。後端
FileReader 包含了一套完整的事件模型,用於捕獲讀取文件時的狀態,下面這個表格概括了這些事件。瀏覽器
事件 | 描述 |
---|---|
onabort | 中斷時觸發 |
onerror | 出錯時觸發 |
onload | 文件讀取成功完成時觸發 |
onloadend | 讀取完成觸發,不管成功或失敗 |
onloadstart | 讀取開始時觸發 |
onprogress | 讀取中 |
文件一旦開始讀取,不管成功或失敗,實例的 result 屬性都會被填充。若是讀取失敗,則 result 的值爲 null ,不然便是讀取的結果,絕大多數的程序都會在成功讀取文件的時候,抓取這個值。this
fr.onload = function() { this.result; };