UNPKG

util-helpers

Version:

一个基于业务场景的工具方法库

40 lines (37 loc) 1.47 kB
import { isFile, isString, toString } from 'ut2'; import { isUploadFile } from './utils/file.util.js'; import getExtname from './getExtname.js'; function checkFileType(file, accept) { var _a, _b; var isFileType = isFile(file); if (!isFileType && !isUploadFile(file)) { return false; } if (!isString(accept)) { accept = toString(accept); } accept = accept.trim(); if (!accept || accept === '*') { return true; } var ret = false; var types = accept.toLowerCase().split(/,(?:\s+)?/); var fileName = (file.name || (!isFileType && (file.fileName || ((_a = file.originFileObj) === null || _a === void 0 ? void 0 : _a.name))) || '').toLowerCase(); var fileType = file.type || (!isFileType && ((_b = file.originFileObj) === null || _b === void 0 ? void 0 : _b.type)) || ''; var fileUrl = (!isFileType && file.url) || ''; types.some(function (type) { if (type === '*' || fileType === type || (type.indexOf('.') === 0 && (getExtname(fileName) === type || getExtname(fileUrl) === type))) { ret = true; } else if (type.includes('/*') && fileType.includes('/')) { var match = type.match(/(.*)\/\*/); var fileParentType = fileType.split('/')[0]; if (match && match[1] === fileParentType) { ret = true; } } return ret; }); return ret; } export { checkFileType as default };