HTML5 实现一个访问本地文件的实例


Posted in HTML / CSS onDecember 13, 2012

在前面的几篇文章里,我向大家共享了几个HTML5的例子,分别是拖拽功能演示,页面内容可编辑化演示 和 本地存储功能演示。 今天,我将向大家分享一个简单的应用,用来演示使用FileReader的方法, FileReader是HTML5里提供的一个文件操作API。

当你在看我前面所写的HTML 5例子时,我正在思考创建一个简单但又适用的例子、以一种更新奇的方式来演练这些HTML5新特性。我的目标并不是想单纯的展示这些HTML 5 API,而是想用例子来告诉开发人员如何真正的以一种实用的和创新的方式实现这些API。

在HTML5里,从Web网页上访问本地文件系统变的十分的简单,那就是使用File API。这个File规范说明里提供了一个API来表现Web应用里的文件对象,你可以通过编程来选择它们,访问它们的信息。这个File API包括:
一个FileList序列,代表着由本地系统里选中的单个的文件组成的数组。用来选择文件的用户接口可以通过<input type=”file”>调用实现。
一个Blob接口,它代表原始二进制数据,通过Blob对象你可以访问里面的字节数据。
一个File接口,它里面存有文件的只读属性信息,像文件名,文件类型,文件数据访问的地址。
一个FileReader接口,它提供了读取一个文件的方法,和一个获取文件读取结果的事件模型。
一个FileError接口和一个FileException对象,它们用来定义这个规范中的错误产生条件。
如何使用这个例子:在这个例子中,我给出了一个画板,你可以从本地文件系统里拖拽进去一个图片,或者你也可以用文件选择框来选择图片。例子中,请只选择图片文件,我并没有添加文件过滤和文件类型检查。请记住,没有一个浏览器完全实现了HTML5,这个例子需要在支持HTML5的浏览器上运行,比如Firefox3.5以上。 

实现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>

这个例子中,我只是拖拽本地文件到画板里。然而我想它能向你表明File API的简单但强大的能力
HTML / CSS 相关文章推荐
css3实现一个div设置多张背景图片及background-image属性实例演示
Aug 10 HTML / CSS
详解CSS3伸缩布局盒模型Flex布局
Aug 20 HTML / CSS
收集的22款给力的HTML5和CSS3帮助工具
Sep 14 HTML / CSS
CSS3属性background-size使用指南
Dec 09 HTML / CSS
简单掌握CSS3中resize属性的用法
Apr 01 HTML / CSS
利用CSS3的border-radius绘制太极及爱心图案示例
May 17 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
May 24 HTML / CSS
纯CSS3实现的井字棋游戏
Nov 25 HTML / CSS
canvas画布实现手写签名效果的示例代码
Apr 23 HTML / CSS
HTML5 在canvas中绘制文本附效果图
Jun 23 HTML / CSS
html5 Canvas实现图片旋转的示例
Jan 15 HTML / CSS
html5自动播放mov格式视频的实例代码
Jan 14 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
Dec 13 #HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
Dec 13 #HTML / CSS
HTML5 新旧语法标记对我们有什么好处
Dec 13 #HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
Dec 13 #HTML / CSS
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
Dec 09 #HTML / CSS
HTML5 Web Database 数据库的SQL语句的使用方法
Dec 09 #HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
Dec 07 #HTML / CSS
You might like
无线电广播的开始
2002/01/30 无线电
留言板翻页的实现详解
2006/10/09 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
解析php中memcache的应用
2013/06/18 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
在IPython中进行Python程序执行时间的测量方法
2018/11/01 Python
利用python GDAL库读写geotiff格式的遥感影像方法
2018/11/29 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
基于python plotly交互式图表大全
2019/12/07 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
销售人员个人求职信
2013/09/26 职场文书
门卫岗位职责
2013/11/15 职场文书
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis