// 图片上传限制宽高的函数,如果符合条件返回true,否者返回false
function checkImageWH(file, width, height) {
return new Promise(function (resolve, reject) {
const filereader = new FileReader();
filereader.onload = (e) => {
const src = e.target.result;
const image = new Image();
image.onload = function () {
if (width && this.width != width && height && this.height != height) {
message.error(`请上传宽为${width}px,高为${height}px的图片`);
resolve(false);
} else {
resolve(true);
}
};
image.onerror = reject;
image.src = src;
};
filereader.readAsDataURL(file);
});
}
// upload 文件上传之前的钩子函数
async function beforeUploadImage(file: any) {
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
if (!isJpgOrPng) {
message.error('只支持JPG、PNG格式!');
}
const isLt5M = file.size / 1024 / 1024 < 5;
if (!isLt5M) {
message.error('图片必须小于5MB!');
}
const flag = await checkImageWH(file, 1920, 1080)
return isJpgOrPng && isLt5M && flag ? true : Upload.LIST_IGNORE;
}