element 上传组件对视频上传时间做限制
获取MP4时间
//file element before-upload 返回给的file fileType 文件类型 自行判断
function getMp4Time(file, fileType) {
return new Promise(resolve => {
//如果是mp4
if (fileType == 'mp4') {
//把element上传组件传给我们的file转成url
let url = URL.createObjectURL(file)
//获取mp4对象
var audioElement = new Audio(url)
//监听事件
audioElement.addEventListener('loadedmetadata', () => {
//时间
const time = Math.round(audioElement.duration * 100) / 100
//超出五分钟
if (time > 5 * 60) {
resolve(false)
} else {
resolve(true)
}
})
} else {
//不是mp4
resolve(true)
}
})
},
在上传前判断
//before-upload
function beforeUpload(){
//返回一个promise
return new Promise(async (resolve, reject) => {
//判断视频是否在规定时间内
let isMp4success = await this.getMp4Data(file, fileType)
//如果不在 返回false
if (!isMp4success) {
this.$message.error('上传视频时长最长五分钟!')
reject(false)
}
//通过
resolve(true)
})
}