优化Upload图片分辨率验证

master
LiuJiaNan 2025-10-28 14:08:33 +08:00
parent c7cbbb84c6
commit 043daac375
1 changed files with 24 additions and 10 deletions

View File

@ -73,17 +73,31 @@ const Upload = (props) => {
// 验证图片分辨率
if (ratioArr.length === 2 && file.type?.startsWith("image/")) {
const img = new Image();
img.src = file.url || file.thumbUrl;
img.onload = () => {
if (img.width !== +ratioArr[0] || img.height !== +ratioArr[1]) {
message.warning(`只能上传${ratio}分辨率的图片`);
const filtered = fileList.filter(item => item.uid !== file.uid);
onChange?.(filtered);
return;
}
onChange?.(fileList);
const validateImageResolution = (imageUrl) => {
const img = new Image();
img.onload = () => {
if (img.width !== +ratioArr[0] || img.height !== +ratioArr[1]) {
message.warning(`只能上传${ratio}分辨率的图片`);
const filtered = fileList.filter(item => item.uid !== file.uid);
onChange?.(filtered);
return;
}
onChange?.(fileList);
};
img.src = imageUrl;
};
// 如果有现成的URL则直接使用否则使用FileReader读取本地文件
if (file.url) {
validateImageResolution(file.url);
}
else {
const reader = new FileReader();
reader.onload = (e) => {
validateImageResolution(e.target.result);
};
reader.readAsDataURL(file);
}
}
else {
onChange?.(fileList);