文件格式处理+element upload文件上传校验

后缀获取

 getFileType(fileName) {
      // 后缀获取
      let suffix = ''
      // 获取类型结果
      let result = ''
      try {
        const flieArr = fileName.split('.')
        suffix = flieArr[flieArr.length - 1]
      } catch (err) {
        suffix = ''
      }
      // fileName无后缀返回 false
      if (!suffix) { return false }
      suffix = suffix.toLocaleLowerCase()
      // 图片格式
      const imglist = ['png', 'jpg', 'jpeg', 'bmp', 'gif']
      // 进行图片匹配
      result = imglist.find(item => item === suffix)
      if (result) {
        return 'image'
      }
      // 匹配txt
      const txtlist = ['txt']
      result = txtlist.find(item => item === suffix)
      if (result) {
        return 'txt'
      }
      // 匹配 excel
      const excelist = ['xls', 'xlsx']
      result = excelist.find(item => item === suffix)
      if (result) {
        return 'excel'
      }
      // 匹配 word
      const wordlist = ['doc', 'docx']
      result = wordlist.find(item => item === suffix)
      if (result) {
        return 'word'
      }
      // 匹配 pdf
      const pdflist = ['pdf']
      result = pdflist.find(item => item === suffix)
      if (result) {
        return 'pdf'
      }
      // 匹配 ppt
      const pptlist = ['ppt', 'pptx']
      result = pptlist.find(item => item === suffix)
      if (result) {
        return 'ppt'
      }
      // 匹配 视频
      const videolist = ['mp4', 'm2v', 'mkv', 'rmvb', 'wmv', 'avi', 'flv', 'mov', 'm4v']
      result = videolist.find(item => item === suffix)
      if (result) {
        return 'video'
      }
      // 匹配 音频
      const radiolist = ['mp3', 'wav', 'wmv']
      result = radiolist.find(item => item === suffix)
      if (result) {
        return 'radio'
      }
      // 匹配 cad
      const cadlist = ['dwt', 'dwg', 'dws', 'dxf']
      result = cadlist.find(item => item === suffix)
      if (result) {
        return 'cad'
      }
      // 其他 文件类型
      return 'other'
    }

上传文件前

// 上传图片之前
    uploadBeforeUploadHandle(file) {
      console.log('---------file.name------------')
      console.log(file.name)
      // console.log(this.fileSize)
      const isLt2M = file.size / 1024 / 1024 < this.fileSize
      var type_flag = false
      var str = ''
      var uploadFileType = this.getFileType(file.name)

      if (this.fileType !== null && this.fileType.length > 0) {
        type_flag = true
        for (var i = 0; i < this.fileType.length; i++) {
          // console.log(this.fileType[i])
          if (i !== 0) {
            str = str + '、'
          }
          str = str + this.fileType[i]
          if (uploadFileType.indexOf(this.fileType[i]) >= 0) {
            type_flag = false
          }
        }
      }
      if (type_flag) {
        this.$message.error('只支持' + str + '格式的文件!')
        return false
      }
      if (!isLt2M) {
        this.$message.error('上传文件大小不能超过' + this.fileSize + 'MB!')
        return false
      }
    },

おすすめ

転載: blog.csdn.net/qq_52912134/article/details/116156988