zoukankan      html  css  js  c++  java
  • html_html5增强的文件上传域_使用FileReader读取文件内容

    FileReader的方法与属性

    方法名 参数 描述
    readAsText (file,encoding) 以文本文件的方式来读取,其中encoding参数指定读取该文件时所用的字符集,该参数的默认值是UTF-8
    readAsBinaryString (file) 以二进制方式来读取文件.通常用于AJAX上传数据到服务器中
    readAsArrayBuffer (file) 将文件内容读取到ArrayBuffer对象中
    readAsDataURL (file) 以DataURL方式来读取文件,这种方式也可以用于读取二进制文件,只是会采用base64方式把文件内容编码成DataURL格式的字符串
    abort 停止读取

    FileReader的事件

    事件 描述
    onloadstart 开始读取数据时触发该事件指定的函数
    onprogress 正在读取数据时触发该事件指定的函数
    onload 成功读取数据后触发该事件指定的函数
    onloadend 读取数据完成后触发该事件指定的函数
    onerror 读取失败时触发该事件指定的函数

    检测浏览器是否支持FileReader对象

    var reader = null;
            if (window.FileReader) {
                reader = new FileReader();
            } else {
                window.alert('部分功能无法得到浏览器支持,请升级浏览器');
            }
    
    function chkFR() {
                if (typeof FileReader === 'undefined') {
                    window.alert('部分功能无法得到浏览器支持,请升级浏览器');
                    return false;
                }
            }
            chkFR();
    

    使用FileReader读取文本文件

    <body>
        <input type="file" name="" id="file">
        <p id="res"></p>
        <script>
            var reader = null;
            var $file = document.getElementById('file');
            $file.addEventListener('change', () => {
                if (window.FileReader) {
                    reader = new FileReader();
                } else {
                    alert('error');
                    return false;
                }
                reader.readAsText($file.files[0], 'utf8');
                reader.onload = () => {
                    document.getElementById('res').innerText += reader.result;
                }
            }, false);
        </script>
    </body>
    

    使用FileReader读取图片文件

    <body>
        <input type="file" name="" id="file">
        <div id="imgBox"></div>
        <script>
            var reader = null;
            var $file = document.getElementById('file');
            $file.addEventListener('change', () => {
                if (window.FileReader) {
                    reader = new FileReader();
                    reader.readAsDataURL($file.files[0]);
                    reader.onload = () => {
                        var img = new Image();
                        img.src = reader.result;
                        document.getElementById('imgBox').appendChild(img);
                    }
                } else {
                    window.alert('error');
                    return false;
                }
            }, false);
        </script>
    </body>
    
  • 相关阅读:
    记第一场省选
    POJ 2083 Fractal 分形
    CodeForces 605A Sorting Railway Cars 思维
    FZU 1896 神奇的魔法数 dp
    FZU 1893 内存管理 模拟
    FZU 1894 志愿者选拔 单调队列
    FZU 1920 Left Mouse Button 简单搜索
    FZU 2086 餐厅点餐
    poj 2299 Ultra-QuickSort 逆序对模版题
    COMP9313 week4a MapReduce
  • 原文地址:https://www.cnblogs.com/Syinho/p/13196444.html
Copyright © 2011-2022 走看看