Element-ui upload上傳文件限制的解決方法

問題

在accept中添加上傳文件的類型隻能起到“表面”作用,選擇“所有文件”之後,還是可以上傳任何類型的文件,根本起不到限制作用。

解決辦法

在before-upload(上傳文件之前的鉤子,參數為上傳的文件,若返回 false 或者返回 Promise 且被 reject,則停止上傳。)鉤子裡去做判斷。這裡有一個坑,當你設置瞭 :auto-upload=”false”的時候, 這個鉤子是不會被觸發的,因此也可以在on-change中做判斷。

上代碼

// :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上傳限制內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: