使用el-upload图片上传校验图片的width与height
<el-upload
class="avatar-uploader"
ref="haiRef"
:action="uploadHaiPic"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:headers="headerObj">
<div slot="trigger" class="upload-pic" v-if="teachObj.poster">
<img class="delete-icon" @click.stop="handleRemoveHai" :src="deleteIcon" />
<img :src="teachObj.poster" class="avatar-img">
</div>
<!-- :on-change="handleImageChange" -->
<div slot="trigger" class="upload-btn" v-else>
<i class="el-icon-plus"></i>
<div>图片上传格式为jpg , gif , png , jpeg ,图片尺
寸限制为600*480,限制大小为5M。</div>
</div>
</el-upload>
beforeAvatarUpload(file){
const isJPG =
file.type === 'image/jpeg' ||
'image/jpg' ||
'image/gif' ||
'image/png';
const isLt5M = file.size / 1024 / 1024 < 5;
if (!isJPG) {
this.$message.error(
'上传头像图片只能是 JPG、JPEG、GIF或PNG 格式!'
);
}
if (!isLt5M) {
this.$message.error('上传头像图片大小不能超过 5MB!');
}
// 上传图片前处理函数
const isSize = new Promise(function(resolve, reject) {
let width = 600;
let height = 480;
let _URL = window.URL || window.webkitURL;
let image = new Image();
image.onload = function() {
let valid = image.width <= width && image.height <= height;
valid ? resolve() : reject();
};
image.src = _URL.createObjectURL(file);
}).then(
() => {
return file;
},
() => {
this.$message.error("上传宣讲海报图片尺寸不符合,只能是600*480!");
return Promise.reject();
}
);
return isJPG && isLt5M && isSize;
},