beforeUpload做格式限制,只判断文件大小,超过大小return false,一切正常,加上判断格式的限制后return false就不起作用了。
if (fileSize > parseInt(this.parameter.size) * 1024) { //限制大小
this.$message({
type: "warning",
message: "上传文件不能大于" + this.parameter.size,
});
return false;
// flag = false
}
解决:Promise(虽然不知道为什么,反正用Promise就好了,用return就不行)
// 格式限制
async beforeUpload(file) {
console.log("i-----file", file);
const fileSuffix = file.name.substring(file.name.lastIndexOf("."));
console.log(fileSuffix);
// const whiteList = ["pdf", "doc", "docx", "xls", "xlsx"];
let flag = true
const whiteList = this.parameter.accept.split(',')
console.log(whiteList);
let fileSize = file.size / 1024;
if (whiteList.indexOf(fileSuffix) === -1) { //限制格式
flag = false
this.$message({
type: "warning",
message: '上传文件只能是' + this.parameter.accept + '格式',
});
} else if (fileSize > parseInt(this.parameter.size) * 1024) { //限制大小
this.$message({
type: "warning",
message: "上传文件不能大于" + this.parameter.size,
});
// return false;
flag = false
}
if (!flag) {
if (!flag) return Promise.reject(flag); //正确的终止
}
},