el-upload组件校验不通过预览列表依然显示图片问题解决

news2024/10/25 6:20:21

如图校验不通过的图片依然显示在预览列表了,需要在校验不通过的时候移除图片
在这里插入图片描述

        <el-upload
            class="upload-cls"
            :action="ossSignature.host"
            :auto-upload="false"
            ref="upload"
            :list-type="listType"
            :limit="limit"
            :on-change="handleChange"
            :on-remove="handleRemove"
            :accept="uploadType"
            :before-upload="beforeUpload"
            :show-file-list="true"
            :file-list="uploadFiles"
        >
            <el-button class="float-l" size="small" type="primary">点击上传</el-button>
            <span>&nbsp;&nbsp;{{ remark }}</span>
        </el-upload>

由于auto-upload = false,校验没办法在beforeUpload事件里添加

最终校验逻辑加在on-change方法里,handleChange方法逻辑如下

        async handleChange(file, fileList) {

            var ext = this.getSuffix(file.name);
            if (this.uploadType.indexOf(ext) < 0) {
                this.handleRemove(file,fileList);
                this.$message.error('仅支持' + this.uploadType + '格式文件');
                return;
            }

            if (this.fileType == 1) {
                var size = file.size / 1024 / 1024;
                if (size > 3) {
                    this.$message.error('图片文件大小仅支持小于3M的图片');
                    this.handleRemove(file,fileList);
                    return;
                }
            }

            if (this.fileType == 2) {
                var size = file.size / 1024 / 1024;
                if (size > 500) {
                    this.$message.error('请上传≤500MB的视频');
                    this.handleRemove(file,fileList);
                    return;
                }
            }
        },
         handleRemove(file, fileList) {
            let index = -1;
            fileList.forEach((e, i) => {
                if (e.uid == file.uid) {
                    index = i;
                }
            });
            if(index >= 0){
                fileList.splice(index, 1);
            }         
        }

主要是利用组件自带的on-change方法,第一个参数file代表当前上传文件,第二个参数就是文件列表对象。实现的主要逻辑就是在类型校验、文件大小限制、视频大小限制不符合的时候,根据uid找到文件index,然后从fileList从移除就好了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1842598.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】函数模版和类模版详解

探索C中的函数模版和类模版 一、函数模版&#xff08;Function Templates&#xff09;二、类模版&#xff08;Class Templates&#xff09;三、总结 在C编程中&#xff0c;模版&#xff08;Templates&#xff09;是一种强大的工具&#xff0c;允许程序员编写通用的代码&#xf…

商超便利店收银系统源码推荐

细节决定成败&#xff0c;无论是做什么事情都要注重细节&#xff0c;让我们来看看关于商超便利店陈列的“细节”有哪些需要注意的地方。 首先要注意商品不要摆太高&#xff0c;放在适当位置即可&#xff01; 商超便利店内&#xff0c;销量最佳的物品摆放位置依次为与顾客视线…

吴恩达:从 Agent 到 Agentic,超越基础模型的下一代 AI

Agentic AI&#xff1a;超越基础模型的下一代 AI — 来自吴恩达的洞察 “与其争论哪些工作才算是真正的 Agent&#xff0c;不如承认系统可以具有不同程度的 Agentic 特性。” —— 吴恩达 2024年 Snowflake 峰会开发者日上&#xff0c;人工智能领域的领军人物吴恩达 (Andrew…

查看nginx安装/配置路径,一个服务器启动两个nginx

查看nginx安装/配置路径 查看nginx的pid&#xff1a; ps -ef | grep nginx查看pid对应服务的启动路径 ll /proc/2320/exe使用检查配置文件命令&#xff0c;查看配置文件位置 /usr/local/nginx/sbin/nginx -t一个服务启动两个nginx 拷贝一份程序&#xff0c;cpbin是我自己创…

如何恢复删除的文件?五种方法,高效恢复全解析整理

随着科技的日新月异&#xff0c;电子设备已无处不在地融入我们的日常生活和工作之中。无论是手机还是电脑&#xff0c;它们已成为我们存储个人数据、工作文档和学习资料的重要载体。然而&#xff0c;在享受数字时代便捷的同时&#xff0c;我们也需警惕一个潜在风险——文件丢失…

腾讯云部署的java服务,访问阿里云的mysql数据库,带宽异常偏高,可能是什么原因

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

opencv学习笔记(2)

设置鼠标回调函数 setMouseCallback(winname, callback, userdata) winname:窗口名字 callback:回调函数 userdata:传回callback中 callback(event, x, y, flags,userdata) event:鼠标事件 x: 鼠标的x坐标 y: 鼠标的y坐标 flags:鼠标键和组合键 userdata:setMouseCallback传回…

环境科学SCI期刊,不含APC的开放获取期刊,值得投

一、期刊名称 Journal of Water and Health 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;环境科学与生态学 影响因子&#xff1a;2.3 中科院分区&#xff1a;4区 三、期刊征稿范围 《水与健康杂志》是一本同行评审的开放获取期刊&#xff0c;致力于向…

手机照片同步到群辉NAS

手机中最宝贵的数据莫过于“照片”,这些包含美好回忆的数字信息是不能丢失的。NAS的作用就是存储,其中最重要的一项功能就是手机照片的同步。 在群辉NAS丰富的套件中,“Synology Photos”就是解决这个功能,今天我们来看看如何操作。 一、安装套件 打开群晖套件中心→所有…

详解工业网关在线探测功能及用途

详解工业网关在线探测功能及用途 工业网关作为工业物联网&#xff08;IIoT&#xff09;架构中的关键组件&#xff0c;扮演着桥梁的角色&#xff0c;它连接了现场的各类传感器、执行器以及更高级别的云平台或企业系统。在线探测功能是工业网关诸多能力中的一项重要特性&#xf…

Linux和Windows(VS 2019)下安装使用Log4cpp日志库

目录 一、Log4cpp简介 二、Windows下的Log4cpp的安装 1、下载网址 2、解决方案 三、Vistual Studio中使用第三方库 1、拷贝对应下图路径下的include文件进入你的项目目录下面去&#xff0c;并将之前编译好的库文件也放在对应项目目录下面去。 2、打开你的项目&#xff0…

FIddler+Proxifer 实现PC客户端抓包详细教程

文章目录 前言1、Proxifer下载和配置1.1、下载Proxifer1.2、Proxifier配置 2、FIddler下载和配置2.1、FIddler下载2.2、FIddler配置 3、三、为什么抓不到有些应用程序的HTTP(s)的包&#xff1f; 前言 一般在浏览器场景下&#xff0c;我们可以利用Fiddler很好的完成抓包&#x…

中学生数理化杂志中学生数理化杂志社中学生数理化编辑部2024年第3期目录

卷首语 坚持努力的二月河 韵致; 1 创新教育 高中化学教学中学生核心素养的培养 孙成扣; 4 核心素养视角下如何开展化学课堂教学策略 于海燕; 5《中学生数理化》投稿&#xff1a;cn7kantougao163.com 探讨初中化学实验教学中学生证据推理能力的培养策略 徐静; 6…

idea的find in Files功能忽略log文件的查询

找到modules 找到log的文件夹 移除

相交链表--力扣160

相交链表 题目思路C代码 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 思路 求两个链表的相交结点&#xff0c;使用…

AMD模块的使用案例-基于普通htm

AMD模块的使用案例-基于普通html 实现过程结果 实现过程 AMD 是一种适用于浏览器环境的模块化规范&#xff0c;主要用于异步加载模块。RequireJS 是实现 AMD 的一个流行库。 ​ 使用案例&#xff1a; 文件目录&#xff1a; index.html&#xff0c;使用<script data-main&…

【SpringCloud-Seata客户端源码分析01】

文章目录 启动seata客户端1.导入依赖2.自动装配 发送请求的核心方法客户端开启事务的核心流程服务端分布式事务的处理机制 启动seata客户端 1.导入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent…

不同表格式下的小文件治理方式(开源RC file/ORC/Text非事务表、事务表、Holodesk表格式..)

友情链接&#xff1a; 小文件治理系列之为什么会出现小文件问题&#xff0c;小文件过多问题的危害以及不同阶段下的小文件治理最佳解决手段 小文件过多的解决方法&#xff08;不同阶段下的治理手段&#xff0c;SQL端、存储端以及计算端&#xff09; 概览 在前两篇博文中&am…

短信内容关键字被拦截-阿里云通知类短信

通知类短信。地产、留学、招聘、交友、游戏等行业仅支持发送验证码。 注意不要有字眼&#xff0c;替换为相似的词语。否则拦截率很高

Java多线程基础知识-2

线程的3个方法&#xff1a; Thread.sleep()&#xff1a;当前线程睡眠多少毫秒&#xff0c;让给其他线程去执行。 Thread.yield()&#xff1a;当前线程退出一下&#xff0c;进入到等待队列&#xff0c;让其他线程执行&#xff0c;即让出线程一下。 Thread.join()&#xff1a;…