饿了么上传组件限制上传文件格式

638 阅读1分钟

直接上图

需求如图,选中不同的单选框上传不同格式的文件

//上传组件

这个是调用的封装判断文件格式的js文件

  handleBeforeUpMutil(file) {      this.fileType = this.$fileSuffixTypeUtil.matchFileSuffixType(file.name);      if (this.dynamicValidateForm.type === "2") {        if (this.fileType === "image") {          return true;        } else {          this.errorTip();          return false;        }      } else if (this.dynamicValidateForm.type === "3") {        if (this.fileType === "video") {          return true;        } else {          this.errorTip();          return false;        }      } else if (this.dynamicValidateForm.type === "4") {        if (this.fileType === "radio") {          return true;        } else {          this.errorTip();          return false;        }      } else if (this.dynamicValidateForm.type === "5") {        if (this.fileType === "file") {          return true;        } else {          this.errorTip();          return false;        }      }      // console.log("file10", file);      // this.isDisableMutil = true;    },

这个是封装判断文件类型的js

const fileSuffixTypeUtil = {  matchFileSuffixType(fileName) {    // 后缀获取    var suffix = "";    // 获取类型结果    var result = "";    try {      var flieArr = fileName.split(".");      suffix = flieArr[flieArr.length - 1];    } catch (err) {      suffix = "";    }    // fileName无后缀返回 false    if (!suffix) {      result = false;      return result;    }    // 图片格式    var imglist = ["png", "jpg", "jpeg", "bmp", "gif"];    // 进行图片匹配    result = imglist.some(function(item) {      return item == suffix;    });    if (result) {      result = "image";      return result;    }    // 匹配 文档    var excelist = ["xls", "xlsx", "txt", "doc", "docx", "pdf", "ppt"];    result = excelist.some(function(item) {      return item == suffix;    });    if (result) {      result = "file";      return result;    }    // 匹配 视频    var videolist = ["mp4", "m2v", "mkv"];    result = videolist.some(function(item) {      return item == suffix;    });    if (result) {      result = "video";      return result;    }    // 匹配 音频    var radiolist = ["mp3", "wav", "wmv"];    result = radiolist.some(function(item) {      return item == suffix;    });    if (result) {      result = "radio";      return result;    }    // 其他 文件类型    result = "other";    return result;  }};export default fileSuffixTypeUtil;