element ui上传组件upload设置格式、大小限制后,文件依然显示在列表内的解决方法
按照element ui文档给upload设置上传限制后(代码如下),点击上传弹出错误提示后图片依然会加入到列表中,并自动调用:before-remove的 beforeRemove方法,弹出移除提示框(如下图)
//图片上传限制条件
beforeUpload(file) {
this.file = file;
const isLt2M = file.size / 1024 / 1024 < 1;
if (!isLt2M) {
this.$message.error("上传图片大小不能超过1MB!");
}
return isLt2M;
},
//移除前提示框
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}?`);
},
去网上找了方法,说是要将return isLt2M;改为return false;执行后问题依然没能解决。
经思考后,认为设置限制条件的beforeUpload方法中return false应是返回file 的一种状态,以区分未加限制条件的file状态;
并在移除提示框beforeRemove判断this.file的状态,如下:
//图片上传限制条件
beforeUploadPic(file) {
this.file = file;
const isLt2M = file.size / 1024 / 1024 < 1;
if (!isLt2M) {
this.$message.error("上传图片大小不能超过1MB!");
this.file=false;
return this.file;
}
},
//移除前提示框
beforeRemove(file, fileList) {
if (this.file) {
return this.$confirm(`确定移除 ${file.name}?`);
}
},
成功解决上述问题。