若想利用 HTML 5 開發一些多媒體程式的網站,你大概會需要一個本地檔案處理的 API 來儲存影片、圖檔等。同時你大概也會希望創作一種類似桌面系統的使用經驗,讓使用者可以直接從原生作業系統拖拉檔案到你的 Web Apps 中。而檔案塞進網頁程式後,又可以製作成縮圖,讓使用者透過網頁介面進行管理。

這些功能在 Google Gears 0.5.21.0 皆已經實做,包含了支援 Bolb, Blob BuilderDrag & Drop supportImage thumbnailing

除了 Google Gears 的實做以外,其實從 Gecko 1.9.2 後在 Firefox 3.6 與 Fennec 1.0 也支援了這些直接利用 Java Script 進行檔案處理的功能。於是你可以利用 Java Script 刻一個的檔案瀏覽器工具,拿 FileList 來接受使用者拖拉進瀏覽器或自選的檔案列表,用 FileReader 作一些簡單的處理,像是把圖片丟進 Canvas 讓使用者改一改後,再傳到網路上伺服器存放等。依據安全性考量,你自然不能直接拿 File Reader 來讀系統檔案,File Reader 的參數都必須是使用者自行選擇帶入的 File 型別才可以。如此便可避免拿 Java Script 作壞事的機會。

Mozilla 的 Arun Ranganathan 已提交 File API 一案至 W3C 供獨立審核。其他關於 HTML5 的 API 請見我的 blog,或參考 Mozilla 的 HTML5 support in Mozilla