input 上传文件 判断重名限制文件个数

2023-11-14

//原生文件上传 accept快捷上传.xls .xlsx格式
//文件上传表单的提交方式必须是“post” 编码类型必须为:enctype=“multipart/form-data”
//上传多个文件属性 multiple

<input type="file" style="display:none;" id="file" multiple @change="changeFile($event)" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" name="multipartFiles"/>
    <label for="file" class=" btn btn-default uploadChange
">
    选择上传文件
</label>

//方法

async changeFile(){
    console.log('导入多文件')
    var filrarr = document.getElementById("file").files;
    console.log(filrarr,'filrarr')
    //单次导入大于20个文件  先文件名去重
    var formdata = new FormData();//创建一个表单
    if(20-this.filesTable.length<filrarr.length){
        alert('最多只能上传20个文件')
    }
    for(var i = 0; i <filrarr.length; i++){
        if(this._.some(this.filesTable,x=>x.fileName==filrarr[i].name)){
            this.$message.error('文件名称已存在')
        }else if(filrarr[i].size>50*1024 * 1024&&i<20-this.filesTable.length){
            this.disabled = false
            console.log(filrarr[i])
            this.fiveFileList.push({
                'status': 2,
                'fileName': filrarr[i].name,
                'msg':'上传文件超过限制大小,最大不能超过50MB'
            })
        }else if(i<20-this.filesTable.length){
            let endText = /\.[^\.]+$/.exec(filrarr[i].name)[0]
            console.log(endText)
            if(endText=='.xls'||endText=='.xlsx'){
                this.formdata.push(filrarr[i])
            }else{
                this.$message.error('只支持.xls,xlsx格式文件')
            }
        }
    }
    this.formdata.forEach(x=> {
        formdata.append("files", x)
    })
    let res = await this.$Http.importExcalFile(formdata)
    if(res) {
        this.filesTable = []
        if(this.fiveFileList.length>0){
            console.log(this.filesTable, this.fiveFileList)
            this.fiveFileList.map(x=>{
                this.filesTable.push(x)
            })
            this.fiveFileList = []
        }
        if(this.filesTable.length>0){
            res.forEach(x=> this._.some(this.filesTable,y=>x.fileName!=y.fileName||x.msg=='申请单编号重复'?this.filesTable.push(x):this.$message.error('文件名称已存在')))
        }else{
            res.forEach(x => this.filesTable.push(x))
        }
        this.tableListNum()
        this.disabled = false
        this.fileloading = false
    }
    document.getElementById('file').value = null   
},

文件夹上传,拖拽上传参考:https://www.cnblogs.com/dearxinli/p/8422140.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

input 上传文件 判断重名限制文件个数 的相关文章

随机推荐

  • Google发布VS Code,支持Kubernetes应用开发

    VS Code以及IntelliJ适合用来开发本地端应用开发 但在开发云端应用的时候 Google提到 因为本地端与云端执行环境的差异 部分云端应用会抱错误 要在开发周期的后期才能被发现 而Cloud Codes能有效改善这个问题 由于是第
  • Ubuntu实时监控网速、CPU、内存

    Ubuntu实时监控网速 CPU 内存 sudo add apt repository ppa fossfreedom indicator sysmonitor sudo apt get update sudo apt get instal
  • 【Python】数据可视化-散点图绘制

    Python在数据科学中拥有十分重要的地位 numpy scipy pandas scikit learn这些高效易用 接口统一的科学计算包使其在数据分析处理过程更加方便快捷 其强大的数据可视化工具也是重要组成部分 在Python中 使用的
  • linux基本命令与终端操作、linux命令英文全称解释、ls clear cd pwd cat touch cp rm rmdir mkdir mv file find grep sudo su

    linux终端的命令提示符 命令提示符由四部分组成 当前登陆的用户名 主机名 当前所在目录 用户提示符 linux基本命令 查看目录下文件及文件夹 ls 英文全称 助记 list 命令参数 a all 输出所有文件及文件夹 包括隐藏文件 l
  • LoFTR配置运行: Detector-Free Local Feature Matching with Transformers ubuntu18.04 预训练模型分享

    刚装好系统的空白系统ubuntu18 04安装 首先进入 软件与更新 换到国内源 论文下载 代码下载 1 anaconda 3 5 3 安装 Index of anaconda archive 清华大学开源软件镜像站 Tsinghua Op
  • Redis进阶

    一 Redis集群和分布式锁 1 1 Redis集群的概念和优势 Redis集群是一种分布式系统架构 它将多个Redis实例组成一个逻辑集群 实现数据的分布式存储和高可用性 每个Redis实例负责存储集群中的一部分数据 通过节点之间的协调和
  • 【Git】Linux系统下Git的升级

    Git 在很多发行版的 Linux 系统里的版本都很低 比如说比 2 18 这个版本还低 这里比较的一般就是码农的本地环境 因为本地 Mac 系统等等大家经常用到的预装的 Git 的版本都比较深 Git 的版本太低有很多衍生问题 除了本身
  • ROS中使用VLP16激光雷达获取点云数据

    ROS中使用VLP16激光雷达获取点云数据 个人博客地址 本文测试环境为 Ubuntu20 04 ROS Noetic 需要将激光雷达与PC连接 然后在设置 gt 网络 gt 有线中将IPv4改为手动 并且地址为192 168 1 100
  • Linux----一条命令更改主机名(临时

    前言 看了些许关于更改主机名的博客 觉得不够简单 略为繁琐 现在介绍两种极其简单的方法来修改主机名 hostname 查看当前主机名 一 临时修改主机名 hostname kiosk kiosk为想要更改的主机名 示例 注意 重启后即失效
  • Java中的private、protected、public和default的区别

    这个问题 应该很老了 但是确实是重点中的重点 如果没有真正的都用过这些修饰符 其实对其的作用并不深刻 我也没用过默认的修饰符 所以有时候也总把friendly和protected搞混 还因为这个丢失了一次很好的工作机会 随意今天又重新弄了一
  • STM32 CAN/CANFD软件快速配置(HAL库版本)

    STM32 CAN CANFD软件快速配置 HAL库版本 目录 STM32 CAN CANFD软件快速配置 HAL库版本 前言 1 软件编程 1 1 建立工程 1 2 初始化 1 2 1 引脚设置 1 2 2 CAN基本参数设置 1 2 3
  • 【计算机网络】湖科大微课堂笔记 p4-p6 计算机网络的定义和分类、性能指标

    计算机网络的定义和分类 了解 定义 此图是否是计算机网络 不是 因为它不自治 分类 广域网是因特网的核心部分 四种拓扑结构的网络 优缺点在视频里7 45 9 10 计算机网络的性能指标 常用的性能指标有以下8个 速率 带宽 吞吐量 时延 时
  • poll和epoll及实现epoll网络服务器

    I O多路转接之poll poll函数原型 参数解释 参数 解释 fds 是 个poll函数监听的结构列表 nfds 表示fds数组的长度 timeout 表示poll函数的超时时间 单位是毫秒 ms pollfd结构 那么fds是一个什么
  • 基于嵌入式Qt的输入法syszuxpinyin自动弹出软件盘的问题

    移植好的syszuxpinyin输入法能正常的检测到控件焦点并自动弹出软键盘 当使用默认的QLineEdit控件时就有了一些小小的问题 问题一 QLineEditt在默认情况下会自动出现焦点 从而导致一进入界面就弹出软键盘 但是我们需要点击
  • springboot打jar包供第三方使用(以回调为例)

    前言 有时我们需要封装功能类库供第三方使用 这时候打包和我们平时发布项目有所不同 假设我们现在要对外提供一个计算功能 使用者只需要传入计算参数就能实现结果异步返回 最后还得对jar包进行混淆 目录 前言 1 编写回调函数类 2 直接打JAR
  • python实现画雪景(二级python书中实例)

    from turtle import from random import def snow hideturtle pensize 2 for i in range 100 r g b random random random pencol
  • 【opencv】linux下生成libopencv_world.so

    一个项目需要用到linux下libopencv world so 按照网上诸多 linux下安装opencv 教程 发现都没有生成libopencv world so的方法 然后偶然间搜到了window编译opencv方法中可以通过开启BU
  • 用java连接Oracle 11g

    了解一下JDBC JDBC 是连接数据库的程序模块 由JSP应用程序 JDBC API JDBC DriverManager JDBC驱动管理器 JDBC驱动程序和数据库几部分组成 java应用程序通过JDBC API访问JDBC驱动管理器
  • Python调用多媒体定时器实现高精度定时

    自己在使用Python实现周期执行的任务时 通常会用time sleep 函数实现 但该方法能实现的最小周期只有30ms左右 且定时不够精确 大概有 5ms左右的跳动 该方法可满足绝大多数应用场景 但对某些实时性要求较高的应用场景则不适用
  • input 上传文件 判断重名限制文件个数

    原生文件上传 accept快捷上传 xls xlsx格式 文件上传表单的提交方式必须是 post 编码类型必须为 enctype multipart form data 上传多个文件属性 multiple