解决使用input file change文件上传只执行一次

 <input
	  type="file"
	  @change="importList"
	  id="imListData"
	  style="display: none"
	  accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
  />

在这里插入图片描述点导入门店可以上传 再点导入商圈也可以上传 那么问题来了 两个按钮用的时一个input上传 为什么一个切换着可以上传 不切换就只能上传一次呢?原因可能是因为@change的event没有发生改变,所以没有上传成功,我们需要把file的值清空,操作如下:

importList (event) {
      this.$Spin.show()
      let obj = this.imListData
      let f = obj.files[0]
      let reader = new FileReader()
      reader.onload = (e) => {
        let data = e.target.result
        if (this.rABS) {
          // 手动转化
          this.wb = XLSX.read(btoa(this.fixdata(data)), {
            type: 'base64'
          })
        } else {
          this.wb = XLSX.read(data, {
            type: 'binary'
          })
        }
        let json = XLSX.utils.sheet_to_json(this.wb.Sheets[this.wb.SheetNames[0]])
        // analyzeListData: 解析导入数据
        let that = this
        setTimeout(function () {
          that.dealListData(that.analyzeListData(json))
        }, 300)
      }
      if (this.rABS) {
        reader.readAsArrayBuffer(f)
      } else {
        reader.readAsBinaryString(f)
      }
      event.target.value = null //注意上传后要将input的值设为空
    },

切记上传之后一定定要设为空奥!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值