您现在的位置是:网站首页> 编程资料编程资料
浅谈HTML5 FileReader分布读取文件以及其方法简介HTML与XHTML、以及HTML4与HTML5标签之间的区别简介HTML5的一个显示电池状态的API简介HTML5是什么 HTML5是什么意思 HTML5简介HTML5安全介绍之内容安全策略(CSP)简介HTML5的标签的代码的简单介绍 HTML5标签的简介html5新增的定时器requestAnimationFrame实现进度条功能HTML5新增加的功能详解iPhone5和iOS6上HTML5开发的新增功能html5简介及新增功能介绍
2023-10-08
370人已围观
简介 本篇文章主要介绍了浅谈HTML5 FileReader分布读取文件以及其方法简介,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文介绍了浅谈HTML5 FileReader分布读取文件以及其方法简介,分享给大家。具体如下:
效果图
老规矩先上效果图

先介绍一下H5中FileReader的一些方法以及事件
FileReader方法
| 名称 | 作用 |
|---|---|
| about() | 终止读取 |
| readAsBinaryString(file) | 将文件读取为二进制编码 |
| readAsDataURL(file) | 将文件读取为DataURL编码 |
| readAsText(file, [encoding]) | 将文件读取为文本 |
| readAsArrayBuffer(file) | 将文件读取为arraybuffer |
FileReader事件
| 名称 | 作用 |
|---|---|
| onloadstart | 读取开始时触发 |
| onprogress | 读取中 |
| onloadend | 读取完成触发,无论成功或失败 |
| onload | 文件读取成功完成时触发 |
| onabort | 中断时触发 |
| onerror | 出错时触发 |
代码
分布读取文件核心思想, 将文件分块以每M进行读取.
HTML部分
Document
loadFile.js部分
/* * 文件读取模块 * file 文件对象 * events 事件回掉对象 包含 success , load, progress */ var FileLoader = function (file, events) { this.reader = new FileReader(); this.file = file; this.loaded = 0; this.total = file.size; //每次读取1M this.step = 1024 * 1024; this.events = events || {}; //读取第一块 this.readBlob(0); this.bindEvent(); } FileLoader.prototype = { bindEvent: function (events) { var _this = this, reader = this.reader; reader.onload = function (e) { _this.onLoad(); }; reader.onprogress = function (e) { _this.onProgress(e.loaded); }; // start 、abort、error 回调暂时不加 }, // progress 事件回掉 onProgress: function (loaded) { var percent, handler = this.events.progress;//进度条 this.loaded += loaded; percent = (this.loaded / this.total) * 100; handler && handler(percent); }, // 读取结束(每一次执行read结束时调用,并非整体) onLoad: function () { var handler = this.events.load; // 应该在这里发送读取的数据 handler && handler(this.reader.result); // 如果未读取完毕继续读取 if (this.loaded < this.total) { this.readBlob(this.loaded); } else { // 读取完毕 this.loaded = this.total; // 如果有success回掉则执行 this.events.success && this.events.success(); } }, // 读取文件内容 readBlob: function (start) { var blob, file = this.file; // 如果支持 slice 方法,那么分步读取,不支持的话一次读取 if (file.slice) { blob = file.slice(start, start + this.step); } else { blob = file; } this.reader.readAsText(blob); }, // 中止读取 abort: function () { var reader = this.reader; if(reader) { reader.abort(); } } } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 如何避免常见的6种HTML5错误用法html5各种页面切换效果和模态对话框用法总结HTML5中drawImage用法分析HTML5 embed标签定义和用法详解HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常html5基础标签(html5视频标签 html5新标签用法)html5跨域通讯之postMessage的用法总结Html5新标签解释及用法
- HTML5添加禁止缩放功能解决HTML5手机端页面缩放的问题HTML5实现可缩放时钟代码可使任何HTML元素动态缩放适合父元素的js插件scalable.jsHtml5之svg可缩放矢量图形_动力节点Java学院整理HTML5全屏响应式缩放切换幻灯片代码用HTML5实现鼠标滚轮事件放大缩小图片的功能HTML5基于SVG实现可拖拽和缩放的世界地图效果源码HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
- 基于HTML5 Canvas的3D动态Chart图表的示例html5中canvas图表实现柱状图的示例canvas如何绘制钟表的方法
- 看图猜成语 一辆汽车两边写着南北 答案是什么成语_手机游戏_游戏攻略_
- 看图猜成语一只老鼠指着一个胆字 答案是什么成语_手机游戏_游戏攻略_
- 看图猜成语 两个杯子一张弓和一条蛇 答案是什么成语_手机游戏_游戏攻略_
- 疯狂猜成语 一个雪地里写一个冰字 答案是什么成语_手机游戏_游戏攻略_
- 迪士尼疯狂猜图 一本寓言书 答案是哪个历史人物_手机游戏_游戏攻略_
- 迪士尼疯狂猜图 otc 答案是哪个公共标识_手机游戏_游戏攻略_
- 迪士尼疯狂猜图一个倒躺着的马 答案是什么成语_手机游戏_游戏攻略_
