<el-upload
class="avatar-uploader"
accept="image/*"
:http-request="(param) => uploadImage(param)"
action="~~"
:limit="1"
ref="coverPicUpload"
:show-file-list="false"
:before-upload="beforeUpload"
>
<el-image
style="width: 300px; height: 150px"
fit="contain"
v-if="picUrl"
:src="picUrl"
>
</el-image>
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
beforeUpload(file) {
const isJPG = (file.type == "image/jpg" || file.type == "image/jpeg" || file.type == "image/gif");
if (!isJPG) {
this.$message.error("图片只能是 JPG、GIF 格式!");
}
const isSize = new Promise(function(resolve, reject) {
let width = 1920;
let height = 1080;
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("上传封面图片尺寸不符合,只能是1920*1080!");
return Promise.reject();
}
)
return isJPG && isSize;
},