zoukankan      html  css  js  c++  java
  • HTML5之FileReader文件读取接口

    FileReader用来把文件读入内存,并且读取文件中的数据。
    FileReader接口提供了一个异步API,使用该API可以在浏览器主线程中异步访问文件系统,读取文件中的数据。

    1、FileReader接口的方法

    FileReader接口有4个方法,其中3个用来读取文件,另一个用来中断读取。无论读取成功或失败,方法并不会返回读取结果,结果存储在result属性中。

    FileReader接口的方法
    方法名参数描述
    readAsBinaryString file 将文件读取为二进制编码
    readAsText file,[encoding] 将文件读取为文本
    readAsDataURL file 将文件读取为DataURL
    abort (none) 中断读取操作

    2、FileReader接口的事件

    FileReader接口包含了一套完整的事件模型,用于捕获读取文件时的状态。

    FileReader接口的事件
    事件 描述
    onabort 中断
    onerror 出错
    onloadstart 开始
    onprogress 正在读取
    onload 成功读取
    onloadend 读取完成,无论成功失败

    3、FileReader接口的使用

    <!DOCTYPE html>
    <html>
        <head>
            <title>FileReader接口</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            
        </head>
        <body>
            <p>
                <label>请选择一个文件:</label>
                <input type="file" id="file" />
                <input type="button" value="读取图像" onclick="readAsDataURL()" />
                <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />
                <input type="button" value="读取文本文件" onclick="readAsText()" />
            </p>
            <div id="myResult"></div>
        </body>
        <script type="text/JavaScript">
    
            //判断浏览器是否支持FileReader接口
            if(typeof FileReader == 'undefined'){
                var myResult = document.getElementById("myResult");
                var file = document.getElementById("file");
                myResult.InnerHTML = "你的浏览器不支持FileReader接口!";
                //使选择控件不可操作
                file.setAttribute("disabled","disabled");
            }
    
            function readAsDataURL(){
                //检验是否为图像文件
                var file = document.getElementById("file").files[0];
                if(!/image/w+/.test(file.type)){
                    alert("看清楚,这个需要图片!");
                    return false;
                }
                var reader = new FileReader();
                //将文件以Data URL形式读入页面
                reader.readAsDataURL(file);
                reader.onload = function(e){
                    var myResult = document.getElementById("myResult");
                    myResult.innerHTML = "";
                    //显示读取结果
                    myResult.innerHTML = '<img src="' + this.result +'" alt="" />';
                }
            }
    
            function readAsBinaryString(){
                var file = document.getElementById("file").files[0];
                var reader = new FileReader();
                //将文件以二进制形式读入页面
                reader.readAsBinaryString(file);
                reader.onload=function(f){
                    var myResult = document.getElementById("myResult");
                    myResult.innerHTML = "";
                    //显示读取结果
                    myResult.innerHTML = this.result;
                }
            }
    
            function readAsText(){
                var file = document.getElementById("file").files[0];
                var reader = new FileReader();
                //将文件以文本形式读入页面
                reader.readAsText(file);
                reader.onload=function(f){
                    var myResult = document.getElementById("myResult");
                    myResult.innerHTML = "";
                    //显示读取结果
                    myResult.innerHTML = this.result;
                }
            }
        </script>
    </html>
  • 相关阅读:
    数据放在服务端和客户端的利与弊
    python异步I/O并发
    view
    mysql千万或者上亿的数据怎么设计数据库
    Django(一)
    JQuery
    BOM与DOM
    JavaScript
    CSS(二)
    CSS介绍
  • 原文地址:https://www.cnblogs.com/wbxk/p/6645921.html
Copyright © 2011-2022 走看看