广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >HTML5中FileReader分布读取文件的示例分析
  • 572
分享到

HTML5中FileReader分布读取文件的示例分析

2024-04-02 19:04:59 572人浏览 安东尼
摘要

这篇文章给大家分享的是有关HTML5中FileReader分布读取文件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先上效果图先介绍一下H5中FileReader的一些

这篇文章给大家分享的是有关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部分

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <fORM>
        <fieldset>
            <legend>分步读取文件:</legend>
            <input type="file" id="File">
            <input type="button" value="中断" id="Abort">
            <p>
                <lable>读取进度:</lable>
                <progress id="Progress" value="0" max="100"></progress>
            </p>
        </fieldset>
    </form>
    <script src="./loadFile.js"></script>
    <script>

            var progress = document.getElementById('Progress');//进度条

            var events = {
                load: function () {
                    console.log('loaded');
                },
                progress: function (percent) {
                    console.log(percent);
                    progress.value = percent;
                },
                success: function () {
                    console.log('success');
                }
            };
            var loader;

            // 选择好要上传的文件后触发onchange事件
            document.getElementById('File').onchange = function (e) {
                var file = this.files[0];
                console.log(file)

                //loadFile.js
                loader = new FileLoader(file, events);
            };

            document.getElementById('Abort').onclick = function () {
                loader.abort();
            }
        </script>
</body>
</html>

loadFile.js部分


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

感谢各位的阅读!关于“HTML5中FileReader分布读取文件的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: HTML5中FileReader分布读取文件的示例分析

本文链接: https://www.lsjlt.com/news/75458.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5中FileReader分布读取文件的示例分析
    这篇文章给大家分享的是有关HTML5中FileReader分布读取文件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。先上效果图先介绍一下H5中FileReader的一些...
    99+
    2022-10-19
  • PHP中文件读取的示例分析
    这篇文章主要介绍PHP中文件读取的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.两个函数的语法:  fread()fread    ( reso...
    99+
    2023-06-14
  • pandas文件读取和保存的示例分析
    这篇文章将为大家详细讲解有关pandas文件读取和保存的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Excel 文件的读取(read_excel)pd.read_excel(io, ...
    99+
    2023-06-27
  • HTML5中文件域+FileReader如何分段读取文件并上传到服务器
    这篇文章将为大家详细讲解有关HTML5中文件域+FileReader如何分段读取文件并上传到服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。说明:使用Ajax方式上传...
    99+
    2022-10-19
  • C#中文件操作、读取文件、Debug/Trace类的示例分析
    这篇文章主要为大家展示了“C#中文件操作、读取文件、Debug/Trace类的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中文件操作、读取文件、Debug/Trace类的示例分析”...
    99+
    2023-06-29
  • jQuery ajax读取本地json文件的示例分析
    这篇文章主要介绍了jQuery ajax读取本地json文件的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。json文件{ &nbs...
    99+
    2022-10-19
  • Netty分布式监听读事件的示例分析
    小编给大家分享一下Netty分布式监听读事件的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们回到AbstractUnsafe的register0()方...
    99+
    2023-06-29
  • 分布式文件系统HDFS的示例分析
    小编给大家分享一下分布式文件系统HDFS的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 从RAID说起大数据技术主要要解决的问题的是大规模数据的计算处理问题,那么首先要解决的就是大规模数据的存储问题。大规模数据存...
    99+
    2023-06-19
  • HDFS文件读流程的示例分析
    这篇文章主要介绍了HDFS文件读流程的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用图来理解:详解HDFS读的过程:1.Client客户端发出请求open到Dist...
    99+
    2023-06-03
  • Java中IO流文件读取、写入和复制的示例分析
    小编给大家分享一下Java中IO流文件读取、写入和复制的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!//构造文件File类File f=new File...
    99+
    2023-05-30
    java
  • html5中布尔属性hidden的示例分析
    这篇文章主要介绍html5中布尔属性hidden的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实例被隐藏的段落:<p hidden>这个段落应该被隐藏...
    99+
    2022-10-19
  • GO语言ini配置文件的读取操作示例分析
    小编给大家分享一下GO语言ini配置文件的读取操作示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!go适合做什么go是golang的简称,而golang可以...
    99+
    2023-06-15
  • Java高效读取大文件实例分析
    1、概述本教程将演示如何用Java高效地读取大文件。Java——回归基础。2、在内存中读取读取文件行的标准方式是在内存中读取,Guava和ApacheCommonsIO都提供了如下所示快速读取文件行的方法:Files.readLines(n...
    99+
    2023-05-30
  • HTML5应用之文件上传的示例分析
    这篇文章主要介绍HTML5应用之文件上传的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用HTML5上传文件在HTML5标准中,XMLHttpRequest对象被重新定义,被...
    99+
    2022-10-19
  • Html5中meta的示例分析
    这篇文章主要为大家展示了“Html5中meta的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Html5中meta的示例分析”这篇文章吧。如下所示:&l...
    99+
    2022-10-19
  • HTML5中Landmark的示例分析
    这篇文章主要介绍HTML5中Landmark的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是 LandmarkLandmark 是一种用来表示网页组织结构的方法。通常一个网页可以被切分成几个大块以一个视...
    99+
    2023-06-09
  • Html5中localStorage的示例分析
    这篇文章将为大家详细讲解有关Html5中localStorage的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。定义只读的 localStorage 允许你访问一个 Document 的远端(or...
    99+
    2023-06-09
  • System.map文件的示例分析
    小编给大家分享一下System.map文件的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!有关System.map文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必...
    99+
    2023-06-27
  • Linux上无痛文件提取的示例分析
    小编给大家分享一下Linux上无痛文件提取的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!它们有很多格式,从 .gz 到  .tbz2,这些文件...
    99+
    2023-06-15
  • ghostscript任意文件读写漏洞的示例分析
    这篇文章主要为大家展示了“ghostscript任意文件读写漏洞的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ghostscript任意文件读写漏洞的示例分析”这篇文章吧。0x...
    99+
    2023-06-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作