HTML 5 File API應用實例
關(guān)于HTML 5,51CTO已陸續(xù)報道了幾篇關(guān)于HTML 5應用技巧方面的文章,比如《探秘HTML 5鏈接預取功能》、《HTML 5 Web Sockets應用初探》等等,下面我們將介紹一個簡單的應用,該應用主要使用了HTML 5中的FileReader方法,F(xiàn)ileReader就是HTML 5所提供的File API。
51CTO推薦專題: HTML 5 下一代Web開發(fā)標準詳解
在HTML 5里,從Web網(wǎng)頁上訪問本地文件系統(tǒng)變的十分的簡單,那就是使用File API。這個File規(guī)范說明里提供了一個API來表現(xiàn)Web應用里的文件對象,你可以通過編程來選擇它們,訪問它們的信息。這個File API包括:
◆一個FileList序列,代表著由本地系統(tǒng)里選中的單個的文件組成的數(shù)組。用來選擇文件的用戶接口可以通過<input type=”file”>調(diào)用實現(xiàn)。
◆一個Blob接口,它代表原始二進制數(shù)據(jù),通過Blob對象你可以訪問里面的字節(jié)數(shù)據(jù)。
◆一個File接口,它里面存有文件的只讀屬性信息,像文件名,文件類型,文件數(shù)據(jù)訪問的地址。
◆一個FileReader接口,它提供了讀取一個文件的方法,和一個獲取文件讀取結(jié)果的事件模型。
◆一個FileError接口和一個FileException對象,它們用來定義這個規(guī)范中的錯誤產(chǎn)生條件。
如何使用這個例子:在這個例子中,給出了一個畫板,你可以從本地文件系統(tǒng)里拖拽進去一個圖片,或者你也可以用文件選擇框來選擇圖片。例子中,請只選擇圖片文件,請注意,該例子中并沒有添加文件過濾和文件類型檢查。請記住,沒有一個瀏覽器完全實現(xiàn)了HTML 5,這個例子需要在支持HTML 5的瀏覽器上運行,比如Firefox3.5以上。
下面就是這個例子 (拖拽一個圖片到畫板里):

實現(xiàn)File API的主要方法非常的簡單,就像下面:
- function imagesSelected(myFiles) {
- for (var i = 0, f; f = myFiles[i]; i++) {
- var imageReader = new FileReader();
- imageReader.onload = (function(aFile) {
- return function(e) {
- var span = document.createElement(’span‘);
- span.innerHTML = ['<img class="images" src="', e.target.result,'" title="', aFile.name, '"/>'].join(”);
- document.getElementById(‘thumbs’).insertBefore(span, null);
- };
- })(f);
- imageReader.readAsDataURL(f);
- }
- }
- function dropIt(e) {
- imagesSelected(e.dataTransfer.files);
- e.stopPropagation();
- e.preventDefault();
- }
選擇在<td>上放置ondrop事件:
- <td align=”left” height=”105″ ondragenter=”return false” ondragover=”return false” ondrop=”dropIt(event)”>
- <output id=”thumbs”></output>
- </td>
這個例子只是演示了拖拽本地文件到畫板里,主要是想展示出HTML 5 File API簡單但又強大的能力。
代碼下載:https://www.ibm.com/developerworks/mydeveloperworks/files/app?lang=en#/person/270000CN12/file/c12b834e-5ec2-457d-80fa-97df433938d7
原文作者:Bob Leah
原文鏈接:https://www.ibm.com/developerworks/mydeveloperworks/blogs/bobleah/entry/
html5_code_example_of_file_api_drag_drop_hard_drive_files_to_a_webpage28?lang=en
【編輯推薦】
- HTML 5學前熱身 實用技巧及應用詳解
- 現(xiàn)在如何在你的站點上使用HTML 5
- HTML 5視頻標簽全屬性詳解
- 為網(wǎng)站提速 探秘HTML 5鏈接預取功能
- 從零開始構(gòu)建HTML 5 Web頁面


















