el-upload的多文件上传

2023-11-04

el-upload实现多文件上传的方法

<el-upload
          class="upload-demo"
          drag
          action="#"
          multiple
          ref="upload"
          :file-list="files"
          :http-request="handleUpload"
          :on-exceed='handExceed'
          :on-remove="handleRemove"
          :on-success='handFileSuccess'
          :before-remove="beforeRemove"
          :auto-upload="false"
          :limit="5">
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
          <div class="el-upload__tip" slot="tip">一次只能上传5个文件</div>
        </el-upload>
<span slot="footer" class="dialog-footer">
          <el-button @click="CancelUpload">取 消</el-button>
          <el-button type="primary" @click="fileChange">立即上传</el-button>
        </span>
data () {
    return {
      files:[]
    };
  },
handleUpload(raw){
      this.files.push(raw.file);
      // console.log(files);
    },
    async fileChange() {
      if (this.files.length > 5) {
        this.$message.warning(`当前限制只能上传选择 1~5 个文件`);
        return
      } else {}
      const loading = this.$loading({
        lock: true,
        text: '上传中...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      });
      this.$refs.upload.submit() // 这里是执行文件上传的函数,其实也就是获取我们要上传的文件
      let random = Math.random();
      let formData = new FormData();
      // formData.append("file", param.file);
      formData.append("user_id", localStorage.user_id);
      formData.append("s_id", localStorage.s_id);
      formData.append("random", random);
      formData.append("file_kind", "src");
      this.files.forEach(function (file) {
         formData.append('file', file); // 因为要上传多个文件,所以需要遍历一下才行
         //不要直接使用我们的文件数组进行上传,你会发现传给后台的是两个Object
       })
      let res = await this.$axios.post(`${this.$baseUrl}/file/upload`, formData);
      console.log(res);
      // JSON.parse(res)
      if (res.data.ret) {
        this.$refs.upload.clearFiles();
        this.files = []
        let objList = []
        loading.close();
        
      } else {
        loading.close();
        this.$message.error("上传文件失败" + res.data.msg);
      }
    },
    handExceed(files, fileList){
      this.$message.warning(`当前限制选择 5 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
    },
    CancelUpload(){
      this.files = []
      this.$refs.upload.clearFiles();
    },
    handFileSuccess(file) {
      console.log(file);
      this.files = []
      this.$refs.upload.clearFiles();
    },
    handleRemove(file, fileList) {
      // console.log(file, fileList);
      this.files = fileList
    },
    beforeRemove(file, fileList) {
      // console.log(file, fileList);
    },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

el-upload的多文件上传 的相关文章

随机推荐

  • opencv-python结构化元素cv2.getStructuringElement()

    在使用opencv的过程中 我们经常需要各种各样的卷积核 如果是正方形的核还好说 但是有时候需要定义椭圆形或者十字形的核 我们就需要用到cv2 getStructuringElement 函数了 第一个参数表示核的形状 可以选择三种 矩形
  • 透视矩阵的推导 opengl

    由参数l r b t n f定义的透视投影矩阵的推导困惑了我差不多一个多礼拜 这几天几乎是天天都在思考这个问题 昨天晚上3点多钟我突然醒了 然后我又开始想这个问题 结果终于让我给想通了 于是我赶紧起床把这个思路记在了草稿纸上 还专门照了张照
  • 计算机485通讯原理,用RS-485设计的多机通信接口电路

    利用RS 485总线建立的多机通信网 具有可靠性高 硬件设计简单 控制方便 成本低廉等优点 它与计算机之间的通信可以采用多级分级通信模式 可方便地建立起设备网络 一 多机通信网原理图 利用RS 485总线建立的多机通信网原理图如下图所示 P
  • python-docx常用方法总结

    由于最近有任务需要自动生成word报告 因此学习了一些python docx的使用方法 在此总结 目前网上相关的资料不算太多 且大多数都很简单 有一些稍微复杂的需求往往找不到答案 很多想要的方法这个库似乎并没有直接提供 在git上看 这个包
  • java中equals方法重写详解(彻底搞定)

    首先上案例 public static void main String args String str1 abc String str2 abc String str3 new String abc new出来的新地址 System ou
  • 计算机网络中的应用层和传输层(http/tcp)

    目录 1 协议的通俗理解 1 1 理解协议 2 应用层 2 1 http协议 2 2 HTTP的方法 2 3 HTTP的状态码 2 4 HTTP常见Header 3 传输层 3 1 端口号 3 1 1 端口号范围划分 3 1 2 netst
  • ESP32 Arduino安装和烧录程序

    学习ESP32前先必需了解一下Arduino Arduino是指开源硬件 在以前开源一般指的是软件 源码公开 后来随着发展出现了开源硬件 开源硬件有了以后大家就可以在开源硬件上做出一些兼容 官方学习参考网址 https www arduin
  • 使用docker 数据卷怎么查看数据卷对应的容器内部目录

    docker inspect redis7703 grep Mounts A 20 说明 redis7703 是容器名称
  • Mysql计算相邻两两记录某个字段的最大差值

    计算相邻两两记录某个字段的最大差值 需求一个患者有多条病程记录 查询该患者的 最大检查间隔 即求两两记录的最大检查间隔 天数 注1 其中检查时间是 case Record表中的create time字段 其中user id是患者编号 注2
  • GRE隧道协议

    一 GRE协议简介 GRE General Routing Encapsulation 通用路由封装 是对某些网络层协议 如IP和IPX 的数据报文进行封装 使这些被封装的报文能够在另一网络层协议 如IP 中传输 此外 GRE协议也可以作为
  • matlab怎么处理非平衡数据处理,处理非平衡数据的七个技巧

    原标题 处理非平衡数据的七个技巧 摘要 本文介绍了在入侵检测 实时出价等数据集非常不平衡的领域应用的数据处理技术 关键字 平衡数据 数据准备 数据科学 原文 7 Techniques to Handle Imbalanced Data ht
  • 深度学习归一化方法总结(BN、LN、IN、GN)

    目录 一 批量归一化 BatchNorm 二 层归一化 Layer Normalization 三 Instance Normalization 四 Group Normalization 一般在神经网络中会用到数据的归一化 比如在卷积层后
  • C++栈初步认识和范围for循环

    C 栈初步认识 1 使用栈实现字符串反转 2 范围for循环 1 使用栈实现字符串反转 当我们需要在程序中实现一个 先进后出 的数据结构时 栈就是一个很好的选择 在C 中 我们可以通过STL提供的stack类来使用栈 stack类模板定义在
  • 分段函数求值1

    Copyright c 烟台大学计算机与控制工程学院 Author 刘慧艳 Created 2014 07 16 Edition V1 0 Describe 分段函数求值 include
  • 电网电压的三相静止对称坐标系和三相电网电压的相量表示法

    电网电压的空间电压矢量和电网电压的相量表示这两个概念需要区分清楚 分别参考邱关源的 电路 和张兴的 PWM整流 相关章节 图2 三相电网电压的相量表示法 电网电压的相量表示 三相相差120度 整体逆时针50HZ旋转 这里的120度是指三分之
  • ceph -s分析

    1 源码跟踪 1 1 get cluster status https github com ceph ceph blob 2a724a2ff313701fd7f6278ce8ed7f440bb355e0 src mon Monitor c
  • Jenkins pipeline拉取代码超时

    拉取代码报错 using GIT ASKPASS to set credentials gt git fetch tags progress http 192 168 1 8 1234 bi web xxxxxx git refs head
  • Linux学习笔记:win10安装虚拟机

    第一步 打开win10自带的虚拟机 第一步 打开win10自带的虚拟机Hyper V 需要 win10系统 1 点击windows键 e键打开文件资源管理器 右击此电脑 gt 选择属性 gt 打开控制面板 2 选择控制面板主页 gt 选择程
  • 机器人识别抓取笔记(基于视觉的机器人抓取——从物体定位、物体姿态估计到平行抓取器抓取估计:综述)

    Real Time Deep Learning Approach to Visual Servo Control and Grasp Detection for Autonomous Robotic Manipulation 基于视觉的机器
  • el-upload的多文件上传

    el upload实现多文件上传的方法