vue el-upload 上傳文件格式校驗(yàn)方法
vue el-upload 上傳文件格式校驗(yàn)
<el-upload class="avatar-uploader" action="#" :show-file-list="false" :before-upload="beforeAvatarUpload"> <i class="el-icon-plus avatar-uploader-icon"></i> </el-upload>
1、文件大小驗(yàn)證
file.size 以字節(jié)Byte為單位(Blob類型),1MB=1024KB,1KB=1024Btye
<script> export default { methods: { beforeAvatarUpload(file) { const isLt2M = file.size / 1024 / 1024 < 2; // 小于2M if ( !isLt2M ) { console.log('文件大小超出2M'); } } } } </script>
2、文件格式驗(yàn)證
文件名后綴是支持大小寫的,如.mp4 .Mp4 .mP4 .MP4都是可以正常播放的,所以我們校驗(yàn)的時(shí)候通過(guò)先將其轉(zhuǎn)成小寫,再進(jìn)行校驗(yàn)。(圖片同理)
file.name.split('.')[1].toLowerCase() != 'mp4'; // 視頻不是.mp4格式的
let formatArr = ['image/png','image/jpg','image/jpeg']; const isPic = ( formatArr.indexOf(file.type.toLowerCase()) != -1 ); // 是否為圖片
3、視頻時(shí)長(zhǎng)驗(yàn)證
函數(shù)可以直接使用,file為el-upload上傳的file文件;得到的結(jié)果單位為秒,保留兩位小數(shù)。
// 獲取視頻文件時(shí)長(zhǎng) getVideoTime(file){ return new Promise((resolve, reject) => { let url = URL.createObjectURL(file); let audioElement = new Audio(url); audioElement.addEventListener('loadedmetadata',function(_event){ const time = Math.round(audioElement.duration * 100) / 100; // 時(shí)長(zhǎng)為秒,保留兩位小數(shù) resolve(time); }); audioElement.addEventListener('error', () => resolve(0)); }) },
el-upload上傳文件 需要在請(qǐng)求之前加一個(gè)校驗(yàn)文件內(nèi)容格式請(qǐng)求
before-upload
data(){ return { ... //判斷是否需要做文件檢查 checkFileFormat:false } }, beforeUpload(rawFile) { this.loading = true; ... 檢查文件格式 檢查文件大小 ... if (this.checkFileFormat) { return new Promise(async (resolve, reject) => { const fd = new FormData() fd.append('file', rawFile) const res = await checkRpAttFile(fd) this.loading = false; if (!res.success) { Message.error(res.message); reject() } else { resolve() } }) } else { return true } },
到此這篇關(guān)于vue el-upload 上傳文件格式校驗(yàn)的文章就介紹到這了,更多相關(guān)vue el-upload 上傳文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue項(xiàng)目中Element UI組件未注冊(cè)的問(wèn)題原因及解決方法
在 Vue 項(xiàng)目中使用 Element UI 組件庫(kù)時(shí),開(kāi)發(fā)者可能會(huì)遇到一些常見(jiàn)問(wèn)題,例如組件未正確注冊(cè)導(dǎo)致的警告或錯(cuò)誤,本文將詳細(xì)探討這些問(wèn)題的原因、解決方法,以及如何在需要時(shí)撤銷相關(guān)操作,需要的朋友可以參考下2025-01-01Vue 路由間跳轉(zhuǎn)和新開(kāi)窗口的方式(query、params)
這篇文章主要介紹了Vue 路由間跳轉(zhuǎn)和新開(kāi)窗口的方式,本文主要通過(guò)query方式和params方式介紹,需要的朋友可以參考下2019-12-12vue利用指令實(shí)現(xiàn)快速設(shè)置元素的高度
在項(xiàng)目中經(jīng)常有需要將列表的高度設(shè)置成剩余可視區(qū)域的高度,本文主要來(lái)和大家介紹一下如何通過(guò)指令和css變量的方式快速設(shè)置列表高度,希望對(duì)大家有所幫助2024-03-03vue3使用vis繪制甘特圖制作timeline可拖動(dòng)時(shí)間軸及時(shí)間軸中文化(推薦)
這篇文章主要介紹了vue3使用vis繪制甘特圖制作timeline可拖動(dòng)時(shí)間軸,時(shí)間軸中文化,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式
這篇文章主要介紹了vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07