-
首先使用 Upload 上传组件
-
使用 before-upload
before-upload:上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传
-
具体代码
// 图片校验 大小
async beforeAvatarUpload(file) {
let res = await this.validImageSize(file, 800, 800)
if(!res){
this.$message.error('图片尺寸只能为 800*800')
return res
}
},
/**
* @description: 图片尺寸校验
* @param {Object}} file 文件对象
* @param {String} imgWidth 图片校验宽度
* @param {String} imgHeight 图片校验高度
* @return {Boolean} true:校验通过 false:校验不通过
*/
// 图片尺寸校验
async validImageSize(file, imgWidth, imgHeight) {
let img = new Image()
img.src = URL.createObjectURL(file)
let { w, h } = await new Promise((resolve, reject) => {
img.onload = () => {
let { width: w, height: h } = img;
resolve({ w, h })
}
})
if (w * imgHeight !== imgWidth * h) {
return false
}
return true
}