直接上图
需求如图,选中不同的单选框上传不同格式的文件
//上传组件
这个是调用的封装判断文件格式的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;