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动画效果的兼容多浏览器简单导航条示例
Jan 26 HTML / CSS
css3实例教程 一款纯css3实现的环形导航菜单
Oct 20 HTML / CSS
实例教程 一款纯css3实现的数字统计游戏
Nov 10 HTML / CSS
CSS3 animation实现逐帧动画效果
Jun 02 HTML / CSS
总结30个CSS3选择器
Apr 13 HTML / CSS
CSS实现雨滴动画效果的实例代码
Oct 08 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
Feb 24 HTML / CSS
HTML5 用动画的表现形式装载图像
Mar 08 HTML / CSS
HTML5 Canvas的事件处理介绍
Apr 24 HTML / CSS
用HTML5制作数字时钟的教程
May 11 HTML / CSS
如何用H5实现一个触屏版的轮播器的实例
Jan 09 HTML / CSS
H5 video poster属性设置视频封面的方法
May 25 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
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php存储过程调用实例代码
2013/02/03 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
jQuery.form.js插件不能解决连接超时(timeout)的原因分析及解决方法
2016/10/14 Javascript
详解在Vue中如何使用axios跨域访问数据
2017/07/07 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
Python使用MD5加密字符串示例
2014/08/22 Python
Python中对列表排序实例
2015/01/04 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
python文字转语音的实例代码分析
2019/11/12 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
大学毕业生通用自荐信范文
2013/10/31 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
药店促销活动总结
2014/07/10 职场文书
建筑安全生产责任书
2014/07/22 职场文书
辞职信格式模板
2015/02/27 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS