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