功能:多文件上传,统一提交

一、需求:

前端实现多文件上传,统一提交上传后服务器返回来的数据,最后一个文件上传完成后立即提交保存,不能间隔时间。

二、思路分析:

2.1、点击上传-->调用file方法-->调用upload方法,我们定义两个变量flagA和flagB,分别记录两个方法执行的次数,每次执行+=1,file先执行,upload后执行,所以upload方法结束后我们我们比较flagA和flagB的值,如果flagA大于flagB说明还有文件要上传,如果flagA等于flagB说明已经是最后一个文件了。这个时机就是我们调用保存的时机。

2.2、以上传三个文件为例:

fileupload对比flag结果
文件1flagA+=1flagB+=1flagA > flagB没有上传完成
文件2flagA+=1flagA+=1flagA > flagB没有上传完成
文件3flagA+=1flagA+=1flagA = flagB上传完成,执行方法

三、代码:

3.1、定义flag:

flagA: 0, // 记录file
flagB: 0, // 记录upload

3.2、记录file:

toRequestFile(data) {
   this.flagA += 1
   this.toRequest(data, 'file');
},

3.3、记录upload:

toRequest(data, type) {
      const fd = new FormData();
      fd.append('file', data.file);
      commonUpload(fd).then(res=>{
        this.$message({ type: 'success', message: '上传成功' });
      }).finally(()=>{
        this.flagB += 1 // 记录upload
        console.log('914flagA-flagB', this.flagA, this.flagB)
      })
    },

3.4、效果:

 

 上传三个文件,三次次upload执行完成打印3,3,说明三个文件都执行完成。

四、欢迎交流指正,关注我,一起学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值