element 选取多个文件,自动上传

原文参考链接 https://blog.youkuaiyun.com/qq_33270001/article/details/114490955

必需属性:

  • :on-change=“handleChange”
  • :multiple=“multiple”
  • :auto-upload=“false”

关键1:handleChange()

this.fileTotal = document.getElementsByName(this.uploadId)[0].files.length;

关键2:httpRequest()

const formDataLen = this.formData.getAll(this.formKey).length;

部分代码:
 <el-upload
  :ref="`upLoadFile-${uploadId}`"
  :name="uploadId"
  :on-change="handleChange"
  :http-request="httpRequest"
  :multiple="multiple"
  :auto-upload="false"
handleChange(file) {
   (file.status === 'ready') && this.BSfileList.push(file);
   this.fileTotal = document.getElementsByName(this.uploadId)[0].files.length;
   if (this.BSfileList.length === this.fileTotal) {
     // 获取上传文件的组件
     const UploaderIns = this.$refs[`upLoadFile-${this.uploadId}`];
     UploaderIns.submit();
   }
 },
httpRequest(file) {
    this.formData.append(this.formKey, file.file);
    const formDataLen = this.formData.getAll(this.formKey).length;
    if (formDataLen === this.fileTotal) {
      fileUpload(this.formData, global.ctmsApi + this.requestUrl)
        .then((res) => {
          this.handleSuccess(res.data);
        })
        .catch(() => {
          this.$refs[`upLoadFile-${this.uploadId}`].uploadFiles;
          const refUploadFiles = this.$refs[`upLoadFile-${this.uploadId}`].uploadFiles;
          for (let i = refUploadFiles.length - 1; i > -1; i -= 1) {
            const hasSame = this.BSfileList.findIndex((v) => v.uid === refUploadFiles[i].uid) > -1;
            hasSame ? refUploadFiles.splice(i, 1) : '';
          }
        })
        .finally(() => {
          this.BSfileList = [];
          this.formData.delete(this.formKey);
          this.closeLoading();
        });
    }
  },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值