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的@media来编写响应式的页面
Nov 01 HTML / CSS
手把手教你用纯css3实现轮播图效果实例
May 04 HTML / CSS
纯CSS3实现表单验证效果(非常不错)
Jan 18 HTML / CSS
CSS3 Backgrounds属性相关介绍
May 11 HTML / CSS
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
Jan 07 HTML / CSS
在HTML5中如何使用CSS建立不可选的文字
Oct 17 HTML / CSS
CSS3的常见transformation图形变化用法小结
May 13 HTML / CSS
html5 跨文档消息传输示例探讨
Apr 01 HTML / CSS
html5+css3气泡组件的实现
Nov 21 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
Apr 23 HTML / CSS
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
Nov 10 HTML / CSS
聊聊CSS粘性定位sticky案例解析
Jun 01 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产生不重复随机数的5个方法总结
2014/11/12 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
php查询及多条件查询
2017/02/26 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
python中sys.argv参数用法实例分析
2015/05/20 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
django-filter和普通查询的例子
2019/08/12 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
Canal官网:巴西女性时尚品牌
2019/10/16 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
大学生入党思想汇报
2014/01/01 职场文书
文体活动实施方案
2014/03/27 职场文书
台风停课通知
2015/04/24 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers