组件默认是自动上传auto-upload为true,这时直接走before-upload钩子没问题
当要手动上传时,走before-upload不会触发该钩子。
这时就要选择on-change
<el-upload class="upload-demo" action="#" multiple :auto-upload="false" list-type="picture"
:on-change="beforeAvatarUpload" :on-preview="handlePreview">
<el-button size="large" plain>上传图片备注</el-button>
<template #tip>
<div class="el-upload__tip">
注:上传jpg、jpeg、png格式的图片,图片大小<5M
</div>
</template>
</el-upload>
import type { UploadProps,UploadFiles } from 'element-plus'
const beforeAvatarUpload: UploadProps['onChange'] = (file,fileList:UploadFiles) => {
if (file.status !== "ready") return;
let rawFile = file.raw!;
fileList.forEach((_,index:number)=>{
if (rawFile.type == 'image/png' || rawFile.type == 'image/jpeg' || rawFile.type == 'image/jpg') {
if (rawFile.size / 1024 / 1024 < 5) {
return true;
} else {
ElMessage({
type: 'error',
message: '上传文件大小小于5M'
})
return false;
}
} else {
ElMessage({
type: 'error',
message: "上传文件格式务必PNG|JPG|JPEG"
})
fileList.splice(index, 1);
return false;
}
})
}
element-plus上传图片组件,上传之前文件格式大小校验的问题
最新推荐文章于 2024-05-19 09:06:12 发布