element ui上传组件upload设置格式、大小限制后,文件依然显示在列表内的解决方法

本文讲述了如何在Element UI的上传组件中设置文件大小和格式限制,确保错误提示后正确阻止文件加入列表,并使用自定义逻辑管理状态,以实现有效控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

element ui上传组件upload设置格式、大小限制后,文件依然显示在列表内的解决方法

按照element ui文档给upload设置上传限制后(代码如下),点击上传弹出错误提示后图片依然会加入到列表中,并自动调用:before-remove的 beforeRemove方法,弹出移除提示框(如下图)

//图片上传限制条件
beforeUpload(file) {
      this.file = file;
        const isLt2M = file.size / 1024 / 1024 < 1;
        if (!isLt2M) {
          this.$message.error("上传图片大小不能超过1MB!");
        }
      return isLt2M;
    },
//移除前提示框
beforeRemove(file, fileList) {
      return this.$confirm(`确定移除 ${file.name}`);
    },

在这里插入图片描述 去网上找了方法,说是要将return isLt2M;改为return false;执行后问题依然没能解决。
经思考后,认为设置限制条件的beforeUpload方法中return false应是返回file 的一种状态,以区分未加限制条件的file状态;
并在移除提示框beforeRemove判断this.file的状态
,如下:

//图片上传限制条件
beforeUploadPic(file) {
      this.file = file;
      const isLt2M = file.size / 1024 / 1024 < 1;
      if (!isLt2M) {
        this.$message.error("上传图片大小不能超过1MB!");
        this.file=false;
        return this.file;
      }
    },
//移除前提示框
beforeRemove(file, fileList) {
      if (this.file) {
        return this.$confirm(`确定移除 ${file.name}`);
      }
    },

成功解决上述问题。
在这里插入图片描述

Element UIUpload 组件是一个用于文件上传的功能模块,它提供了一种用户友好的界面处理文件上传。默认情况下,Upload 组件在一次操作中只能上传一个文件。然而,如果你想让用户在已经上传文件之后,还能继续选择新的文件,你可以通过自定义一些额外的逻辑和样式来实现这个功能。 一种常见的做法是,在原有的组件基础上增加一个按钮或者一个状态指示,当有文件上传完成后,显示一个“添加更多”或“点击选择更多”的提示。点击该按钮或触发某个事件后,可以再次打开一个文件选择器让用户选择新的文件。 以下是简单的步骤: 1. 首先,你需要保留原有的 Upload 组件实例,并监听它的 `on-success` 或者 `on-change` 事件,这两个事件会在文件上传成功或选择新文件时触发。 2. 当这些事件触发时,你可以设置一个标志,比如 `multiple` 属性,来开启多选模式或者动态修改上传区域的可见性。 3. 创建一个新的按钮或图标,绑定点击事件,这将触发新的文件选择流程。 4. 在点击事件的回调里,清空之前的上传结果,然后重新打开一个新的 Upload 组件实例,允许用户选择更多的文件。 示例代码片段可能会像这样: ```html <template> <div> <el-upload :multiple="isMultiple" @success="handleSuccess" ref="upload"> <!-- ... --> </el-upload> <button v-if="showAddButton" @click="openNewUpload">添加更多</button> </div> </template> <script> export default { data() { return { isMultiple: false, showAddButton: false, uploadedFiles: [], // 存储已上传文件 }; }, methods: { handleSuccess(file) { this.uploadedFiles.push(file); if (this.uploadedFiles.length === 1) { // 只有第一个文件上传完才显示添加按钮 this.showAddButton = true; } }, openNewUpload() { this.isMultiple = true; // 开启多选模式 this.showAddButton = false; this.$refs.upload.clearFiles(); // 清空当前已有的文件 }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_45024732

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值