問題
在accept中添加上傳文件的類型只能起到“表面”作用,選擇“所有文件”之后,還是可以上傳任何類型的文件,根本起不到限制作用。
解決辦法
在before-upload(上傳文件之前的鉤子,參數為上傳的文件,若返回 false 或者返回 Promise 且被 reject,則停止上傳。)鉤子里去做判斷。這里有一個坑,當你設置了 :auto-upload="false"的時候, 這個鉤子是不會被觸發的,因此也可以在on-change中做判斷。
上代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// :before-upload或者:on-change綁定的方法 beforeUpload(file, fileList) { if (file.size / (1024 * 1024) > 500) { // 限制文件大小 this .$message.warning(`當前限制文件大小不能大于500M`) return false } let suffix = this .getFileType(file.name) //獲取文件后綴名 let suffixArray = [ 'jpg' , 'png' , 'jpeg' , 'gif' ] //限制的文件類型,根據情況自己定義 if (suffixArray.indexOf(suffix) === -1) { this .$message({ message: '文件格式錯誤' , type: 'error' , duration: 2000 }) } return suffixArray }, getFileType(name) { let startIndex = name.lastIndexOf( '.' ) if (startIndex !== -1) { return name.slice(startIndex + 1).toLowerCase() } else { return '' } } |
到此這篇關于Element-ui upload上傳文件限制的解決方法的文章就介紹到這了,更多相關Element upload上傳限制內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://juejin.cn/post/6920162608620404743