判断文件类型这里采用根据提取文件名称后缀的方式实现:
export function getFileType(fileName) {
// 后缀获取
let suffix = ''
// 获取类型结果
let result = ''
try {
const flieArr = fileName.split('.')//根据.分割数组
suffix = flieArr[flieArr.length - 1]//取最后一个
} catch (err) {//如果fileName为空等.split方法会报错,就走下面的逻辑
suffix = ''
}
// fileName无后缀返回 false
if (!suffix) {//走catch后返回false
return false
}
suffix = suffix.toLocaleLowerCase()//将后缀所有字母改为小写方便操作
/* 这里开始写入需要判断的逻辑体 */
return 'other'//以上的判断逻辑都没return时反馈当前后缀是其他类型文件后缀
}
判断的逻辑体案例如下,可自行添加
// 图片格式
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'
}
// 匹配 压缩包
const ziplist = ['zip', 'rar']
result = ziplist.find(item => item === suffix)
if (result) {
return 'zip'
}
以上就是需要通过文件名判断文件类型时,可封装执行的js封装体。
实际使用效果如下:
console.log(getFileType("复习资料.txt")) //txt
console.log(getFileType("复.习资料.pdf")) //pdf
console.log(getFileType("复习资.料.mp3")) //radio
console.log(getFileType("复习.资料.rar")) //zip
console.log(getFileType("复习.资料")) //other
console.log(getFileType("")) //false
如果有更漂亮的写法欢迎来讨论,让我们一起有条不紊的持续进步。
喜欢的话不妨点个小小的赞与关注,您的赞与关注将是我源源不断的前进动力。