添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

前幾天,我們已經認識了跟檔案相關的物件,包含:Blob, File, FileList, arryBuffer等。那接下來就可以開始看各種應用囉!

在開始進行應用前我們要先認識FileReader

FileReader

FileReader 是HTML5中的javascript新物件。可以非同步的方式,讀取儲存本地端的檔案內容,讀取的格式可以是 File Blob

看一下FileReader這個物件包含哪些屬性、方法和事件,我們大概就會有概念要怎麼使用

可以依照功能大概分類為

01. 讀取文件的『狀態』

1-1 屬性

error : 當文件讀取有錯誤時顯示的錯誤訊息 readyStatue :檔案讀取的狀態,呈現為數字:0,1,2
  • 0 - EMPTY 沒有檔案讀入
  • 1 - LOADING: 正在讀入檔案
  • 2 - DONE: 檔案讀取完成
  • 上圖的綠框框底下其實就有這些狀態
  • 1-2 事件

    onabort : 檔案讀取 被中斷 時觸發 onerror : 檔案讀取 發生錯誤 時觸發 onload : 檔案 讀取完成 時觸發 onloadstart : 檔案 開始讀取 時觸發 onloadend : 每一次的 檔案讀取結束後觸發 (成功失敗都會)。在 onload or onerror之後 onprogress : 讀取Blob內容時觸發

    02. 讀取文件的『方法』

    這邊是檔案讀取的時候可以用的不同方法,包含可以用不同的格式讀取。

    abort() : 中斷目前的讀取,呼叫後,readyState會是DONE readAsArrayBuffer() : 以ArrayBuffer物件讀入檔案內容 readAsBinaryString() : 以字串型式來表示讀入的原始二進位資料(raw binary data) readAsDataURL() :以dataURI格式(base64)讀入檔案內容 readAsText() :以文字字串型式讀入檔案內容

    小結一下關於開始正式進入檔案處理應用的關係圖

  • 我們透過input file獲取檔案,可以轉換成File Object,而File Object是繼承Blob而來。
  • 取得檔案內容的方式可以使用 FileReader 或是 CreateObjectURL。兩者不同之處是:createObjectURL只是指向本地端檔案位置,顯示出檔案;而FileReader是真的去讀取檔案的內容,因此讀取的速度會受到檔案的大小影響,也會不同格式的讀取方式Ex. readArrayBuffer, readAsDataURL...
  • 作了好多前置準備,備齊材料後,我們明天就可以開始燒菜啦!就是明天!我們正式進到檔案處理的應用~~~