热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

H5的FileReader分布读取文件应该如何使用以及其方法简介

这次给大家带来H5的FileReader分布读取文件应该如何使用以及其方法简介,H5的FileReader分布读取文件的使用以及其方法简介的注意事项有哪些,下面就是实战案例,一起来看一下。
这次给大家带来H5的FileReader分布读取文件应该如何使用以及其方法简介,H5的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部分


 

    
    

 

    
        
分步读取文件:

读取进度:

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 

相信看了这些案例你已经掌握了方法,更多精彩请关注其它相关文章!

相关阅读:

超链接的宽高怎样设置

在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值

如何用html的title属性实现鼠标悬停显示文字

以上就是H5的FileReader分布读取文件应该如何使用以及其方法简介的详细内容,更多请关注其它相关文章!


推荐阅读
  • 1#include2#defineM1000103#defineRGregister4#defineinf0x3f3f3f3f5usingnamespacestd;6boolrev ... [详细]
  • 本文主要介绍如何在Mac操作系统中配置和安装Yii2的基础应用程序模板,同时提供解决常见安装问题的方法。对于高级或自定义应用模板的搭建,可参阅官方文档。 ... [详细]
  • 材料光学属性集
    材料光学属性集概述了材料在不同光谱下的光学行为,包括可见光透射率、太阳光透射率等关键参数。 ... [详细]
  • VC++ 文件操作实践案例
    本文介绍如何在Visual C++ 6.0环境下,通过下载的VC源代码实现文件的基本读写操作,并解决常见的运行错误。 ... [详细]
  • Web前端开发的职业前景与就业指南
    随着互联网行业的蓬勃发展,Web前端技术因其在用户界面和交互设计中的关键作用而备受企业重视。本文探讨了前端开发的职业前景,以及应届毕业生如何提高自己的竞争力。 ... [详细]
  • 本文详细记录了腾讯ABS云平台的一次前端开发岗位面试经历,包括面试过程中遇到的JavaScript相关问题、Vue.js等框架的深入探讨以及算法挑战等内容。 ... [详细]
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • 前端开发PPT页面与评论区展示优化
    本文介绍了如何在前端开发中实现一个类似于StackOverflow样式的PPT展示页面和评论区,提供了项目源代码及在线演示链接,并分享了开发过程中遇到的挑战及其解决方案。 ... [详细]
  • 本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ... [详细]
  • UVa 1579 - 套娃问题
    本题主要涉及动态规划(DP)的应用,通过计算将前i个套娃合并成多个套娃组所需的最小操作次数来解决问题。具体来说,f(i) 表示前i个套娃合并成多个套娃组所需的操作次数,其计算公式为 f(i) = min(f(j) + dp(j+1, i))。 ... [详细]
  • 在 Django 模型中,ForeignKey 的 on_delete 参数定义了当关联对象被删除时,当前模型实例的行为。本文详细解释了 on_delete 的各个选项及其具体作用。 ... [详细]
  • POJ2263是一个经典的图论问题,涉及寻找从起点到终点的最大载重路径。本文将详细介绍该问题的背景、解题思路及代码实现。 ... [详细]
  • MATLAB是科技工作者的重要工具,以其强大的科学计算能力和简洁的编程风格而广受好评。然而,MATLAB生成的图形默认分辨率较低,这在某些情况下可能会影响图形的质量。本文将介绍如何在MATLAB中保存高分辨率的图形。 ... [详细]
  • Android开发:巧妙运用ViewStub写出类似Tab选项卡
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 在Ubuntu 16.10 (x86) 上安装 WordPress 4.7.115
    本文介绍如何在Ubuntu 16.10 (x86) 系统上安装WordPress 4.7.115,包括下载、解压、配置等步骤,确保安装过程顺利进行。 ... [详细]
author-avatar
攻玉是我_944
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有