zoukankan      html  css  js  c++  java
  • html_html5增强的文件上传域_FileList对象与File对象

    FileList对象与File对象

    type='file'的input标签都有两个属性:accept属性与multiple属性

    • accept:控制允许上传的文件类型,其属性值为一个或多个MIME类型字符串,多个MIME类型字符串之间用逗号间隔.
      测试accept属性:
    <input type="file" name="" id="file" accept="'image/jpge','image/png'">
    <!--你将只被允许使用这个文件上传域上传jpg格式和png格式的图片.点击后非该格式的文件不会出现在选择框中.-->
    
    • 测试multiple属性:
    <input type="file" name="" id="file" accept="'image/jpge','image/png'" multiple>
    <!--按住ctrl键可以选取多个文件-->
    

    JavaScript可以通过files属性访问type='file'的<input>元素生成的文件上传域内的所有文件,该属性返回一个FileList对象.FileList可以近似看成数组,可以通过files[0],files[1]之类的方式去获取返回对象.

    如图,我是上传了四张图片并获取input元素返回的files属性值得到的.FileList本质是一个对象,包括0,1,2...length等属性.而每个数字属性的值同样是一个File对象,包含有name ypesize等属性(还有其它属性但不重要).
    每个file对象的属性:

    • name:所对应的文件名,不包含文件路径部分.
    • type:所对应文件的MIME类型字符串.
    • size:所对应文件的大小.
    <body>
        <div class="container">
            <div class="card">
                <div class="card-header text-center">
                    <input type="file" name="" id="file1" class="btn btn-info" accept="image/*">
                </div>
                <div class="card-body" id="info">
    
                </div>
                <div class="card-footer">
                    <input type="button" value="点击获取文件信息" class="btn btn-dark btn-outline-light col-4 offset-4"
                        onclick="getFile()">
                </div>
            </div>
        </div>
        <script>
            function getFile() {
                var $ = function (id) {
                    return (document.getElementById(id));
                };
                var fileName = $('file1').files[0].name;
                var fileType = $('file1').files[0].type;
                var fileSize = $('file1').files[0].size;
                $('info').innerHTML =
                    `<strong>文件名称</strong>:${fileName}<hr><strong>文件类型</strong>:${fileType}<hr><strong>文件大小![](https://img2020.cnblogs.com/blog/1677030/202006/1677030-20200625152108513-773320149.png)
    
    </strong>:${fileSize}`;
            }
        </script>
    </body>
    
    • 样式

    不要单靠accept属性来过滤文件夹,因为这只是客户端的文件类型过滤,这种文件类型过滤十分脆弱。开发者需要进行文件上传必须在服务器端对文件类型进行过滤

  • 相关阅读:
    OpenStack 中的neutron-server启动过程
    NYOJ 284 坦克大战 【BFS】+【优先队列】
    HDSF主要节点解说(二)工作原理
    SQL SERVER中的流程控制语句
    Android 自己定义View (二) 进阶
    JNI学习积累之一 ---- 常用函数大全
    Android NDK开发之Jni的数据类型
    CMakeListx.txt 编辑语法学习
    用CMake代替makefile进行跨平台交叉编译
    Android 开发--CMakeList调用本地so文件
  • 原文地址:https://www.cnblogs.com/Syinho/p/13191880.html
Copyright © 2011-2022 走看看