HTML+CSS知识

HTML5 文件API-input File

2017-06-10  本文已影响4891人  飞鱼_JS

上传input

FileList对象

File对象

实例

<body>
    <h1>FileList和File</h1>
    <input type="file" multiple onchange="uploadFile(this)">        
    <div id="box"></div>
    <script>    
        function uploadFile(obj){       
        var str = "";
            [].forEach.call(obj.files, function(file){
            //用forEach()遍历类数组对象
                str += "文件名 :"+file.name+"<br>";
                str += "文件大小 :"+file.size+"<br>";
                str += "文件类型 :"+file.type+"<br>";
                str += "最后修改时间 :"+file.lastModifiedDate+"<br>";
                str += "<hr>";
            });
            document.getElementById("box").innerHTML = str;
        }
    </script>

FileReader

属性
方法 (没有返回值)
事件

实例

<h1>FileReader</h1>
    <hr>
    <input type="file" onchange="uploadFile(this)">
    <div id="box"></div>
    <script>
        function uploadFile(obj){
            //获取file对象
            var file = obj.files[0];            
            //创建FileReader对象
            var fr = new FileReader();
            //判断文件的类型
            if (file.type.match(/^text\//) !== null) {
                //读取文本文件
                readText(fr, file);
            } else if (file.type.match(/^image\//) !== null) {
                //读取图片
                readImage(fr, file);
            } else {
                alert("你上传的文件格式无法读取");
            }
        }
        /**
         * 读取图片
         * @param FileReader  frObj 
         * @param File  fileObj 
        */
        function readImage(frObj, fileObj) {
            frObj.onload = function(){
                var img = document.createElement("img");
                img.src = frObj.result;
                document.querySelector("#box").appendChild(img);
            }
            frObj.readAsDataURL(fileObj);
        }
        /**
         * 读取文本
         * @param FileReader  frObj 
         * @param File  fileObj 
        */
        function readText(frObj, fileObj) {
            frObj.onload = function(){
                var pre = document.createElement("pre");
                pre.innerHTML = frObj.result;
                document.querySelector("#box").appendChild(pre);
            };
            frObj.readAsText(fileObj);
        }
    </script>
上一篇下一篇

猜你喜欢

热点阅读