阅读 55

图片上传第一次触发,第二次不触发的问题

<input type="file" @change="upfileimg($event)">
//上传图片
upfileimg(e) {
    this.$toast.loading({ duration: 0, forbidClick: true, mask: false, message: '图片上传中', });
    let file = e.target.files[0];
    // 图片开始压缩,获得压缩后的rst参数
    lrz(file, { quality: 0.3 }).then(rst => {
        this.$toast.clear();
        let userfile = this.upfile(rst.base64, rst.origin.name);//调用自己的upfile方法吧压缩后的base64转二进制
        let formdata = new FormData();
        formdata.append('img', userfile);
        this.axios.post('api/ucenter/edit_pic', formdata).then(res => {
            if (res.status == 1) {
                this.userimg = res.data.img;
                this.$toast('头像修改成功')
                e.target.value = '';//重置一遍value,至关重要,防止第二次上传相同图片,或者取消上传报错
            }
        })
    });
},
复制代码

如果不重置value,上传相同图片,或取消会引发报错