HTML 5 File API应用实例

开发 前端
在HTML 5里,从Web网页上访问本地文件系统变的十分的简单,那就是使用File API。这个File规范说明里提供了一个API来表现Web应用里的文件对象,你可以通过编程来选择它们,访问它们的信息。

关于HTML 5,51CTO已陆续报道了几篇关于HTML 5应用技巧方面的文章,比如《探秘HTML 5链接预取功能》、《HTML 5 Web Sockets应用初探》等等,下面我们将介绍一个简单的应用,该应用主要使用了HTML 5中的FileReader方法,FileReader就是HTML 5所提供的File API。

51CTO推荐专题: HTML 5  下一代Web开发标准详解

在HTML 5里,从Web网页上访问本地文件系统变的十分的简单,那就是使用File API。这个File规范说明里提供了一个API来表现Web应用里的文件对象,你可以通过编程来选择它们,访问它们的信息。这个File API包括:

◆一个FileList序列,代表着由本地系统里选中的单个的文件组成的数组。用来选择文件的用户接口可以通过<input type=”file”>调用实现。

◆一个Blob接口,它代表原始二进制数据,通过Blob对象你可以访问里面的字节数据。

◆一个File接口,它里面存有文件的只读属性信息,像文件名,文件类型,文件数据访问的地址。

◆一个FileReader接口,它提供了读取一个文件的方法,和一个获取文件读取结果的事件模型。

◆一个FileError接口和一个FileException对象,它们用来定义这个规范中的错误产生条件。

如何使用这个例子:在这个例子中,给出了一个画板,你可以从本地文件系统里拖拽进去一个图片,或者你也可以用文件选择框来选择图片。例子中,请只选择图片文件,请注意,该例子中并没有添加文件过滤和文件类型检查。请记住,没有一个浏览器完全实现了HTML 5,这个例子需要在支持HTML 5的浏览器上运行,比如Firefox3.5以上。

下面就是这个例子 (拖拽一个图片到画板里):

拖拽一个图片到画板

实现File API的主要方法非常的简单,就像下面:

  1. function imagesSelected(myFiles) {  
  2.   for (var i = 0, f; f = myFiles[i]; i++) {  
  3.     var imageReader = new FileReader();  
  4.     imageReader.onload = (function(aFile) {  
  5.       return function(e) {  
  6.         var span = document.createElement(’span‘);  
  7.         span.innerHTML = ['<img class="images" src="', e.target.result,'" title="', aFile.name, '"/>'].join(”);  
  8.         document.getElementById(‘thumbs’).insertBefore(span, null);  
  9.       };  
  10.     })(f);  
  11.     imageReader.readAsDataURL(f);  
  12.   }  
  13. }  
  14.  
  15. function dropIt(e) {    
  16.    imagesSelected(e.dataTransfer.files);   
  17.    e.stopPropagation();    
  18.    e.preventDefault();     
  19. }   

 选择在<td>上放置ondrop事件:

  1. <td align=”left” height=”105″ ondragenter=”return false” ondragover=”return false” ondrop=”dropIt(event)”>      
  2.    <output id=”thumbs”></output>   
  3. </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

【编辑推荐】

  1. HTML 5学前热身 实用技巧及应用详解
  2. 现在如何在你的站点上使用HTML 5
  3. HTML 5视频标签全属性详解
  4. 为网站提速 探秘HTML 5链接预取功能
  5. 从零开始构建HTML 5 Web页面

 

责任编辑:王晓东 来源: 外刊IT评论
相关推荐

2012-01-04 09:42:40

HTML 5

2012-03-07 10:04:11

HTML 5

2012-11-05 10:34:52

IBMdw

2011-07-14 09:16:10

HTML 5

2021-08-12 18:49:41

DataStreamAPI注册

2010-01-29 09:00:48

HTML5 File 文件拖放上传

2010-08-09 08:48:46

File APIWeb

2013-01-18 10:59:44

IBMdW

2012-06-18 15:40:32

jQuery

2017-08-09 15:57:11

JavaScriptHtml5音频

2014-08-28 10:16:17

HTML5

2009-09-08 13:47:11

SproutCoreHTML 5应用框架

2012-05-23 13:00:37

HTML5

2010-09-26 08:46:06

HTML 5Cache Manif

2012-05-15 09:42:06

2010-08-10 09:08:29

WebSocketsHTML 5

2012-06-07 15:51:40

HTML5

2011-11-23 09:11:36

API

2011-12-21 21:56:45

PhoneGap APFile

2011-12-12 09:04:35

HTML 5
点赞
收藏

51CTO技术栈公众号