beforeUpload = (file: any):any => {
const imgTypeCheck : boolean = /(.jpg|.jpeg|.png)$/.test(file.type);
const videoTypeCheck: boolean = /(.mp4)$/.test(file.type);
const imgCheck = /image/.test(file.type);
const videoCheck = /video/.test(file.type);
if(!imgCheck && !videoCheck) {
message.error("只能上传图片或视频");
return false;
} else {
const {screenType} = this.state;
return new (Promise as any)((resolve: any,reject: any) => {
if(imgTypeCheck) {
const filereader = new FileReader();
filereader.onload = (e: any)=> {
const src = e.target.result;
const image = new Image();
image.onload = () => {
const w = image.width;
const h = image.height;
const key = screenType === 'HORIZONTAL' ? Number((h / w).toFixed(4)) === 0.5625 : Number((w / h).toFixed(4)) === 0.5625
if(key) {
resolve('上传到oss上的方法');
} else {
message.error("图片宽高不符合规则");
reject()
}
};
image.onerror = reject;
image.src = src;
};
return filereader.readAsDataURL(file)
} else {
if(imgCheck) {
message.error("图片上传类型jpg,jpeg和png")
reject()
} {
resolve()
}
}
}).then(()=>{
if(videoTypeCheck) {
let filereader = new FileReader();
return new Promise((resolve,reject)=>{
filereader.onload = (e: any) => {
const src = e.target.result;
const video = document.createElement('video');
video.src = src;
video.addEventListener('loadeddata', () => {
const w = video.videoWidth;
const h = video.videoHeight;
const key = screenType === 'HORIZONTAL' ? Number((h / w).toFixed(4)) === 0.5625 : Number((w / h).toFixed(4)) === 0.5625;
if(key) {
resolve('上传到oss上的方法');
} else {
message.error("视频宽高不符合规则");
reject()
}
}, false);
video.onerror = reject;
};
filereader.readAsDataURL(file);
})
} else {
if(videoCheck) {
message.error("视频上传类型只能为mp4")
return Promise.reject()
} else {
return Promise.resolve()
}
}
})
}
}