您现在的位置是:网站首页> 编程资料编程资料

浅谈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(); } } } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关内容

-六神源码网