export const MIME_TYPE_LIST = {
'*': 'application/octet-stream',
'323': 'text/h323',
acx: 'application/internet-property-stream',
ai: 'application/postscript',
aif: 'audio/x-aiff',
aifc: 'audio/x-aiff',
aiff: 'audio/x-aiff',
asf: 'video/x-ms-asf',
asr: 'video/x-ms-asf',
asx: 'video/x-ms-asf',
au: 'audio/basic',
avi: 'video/x-msvideo',
axs: 'application/olescript',
bas: 'text/plain',
bcpio: 'application/x-bcpio',
bin: 'application/octet-stream',
bmp: 'image/bmp',
c: 'text/plain',
cat: 'application/vnd.ms-pkiseccat',
cdf: 'application/x-cdf',
cer: 'application/x-x509-ca-cert',
class: 'application/octet-stream',
clp: 'application/x-msclip',
cmx: 'image/x-cmx',
cod: 'image/cis-cod',
cpio: 'application/x-cpio',
crd: 'application/x-mscardfile',
crl: 'application/pkix-crl',
crt: 'application/x-x509-ca-cert',
csh: 'application/x-csh',
css: 'text/css',
dcr: 'application/x-director',
der: 'application/x-x509-ca-cert',
dir: 'application/x-director',
dll: 'application/x-msdownload',
dms: 'application/octet-stream',
doc: 'application/msword',
docx:
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
dot: 'application/msword',
dvi: 'application/x-dvi',
dxr: 'application/x-director',
eps: 'application/postscript',
etx: 'text/x-setext',
evy: 'application/envoy',
exe: 'application/octet-stream',
fif: 'application/fractals',
flr: 'x-world/x-vrml',
gif: 'image/gif',
gtar: 'application/x-gtar',
gz: 'application/x-gzip',
h: 'text/plain',
hdf: 'application/x-hdf',
hlp: 'application/winhlp',
hqx: 'application/mac-binhex40',
hta: 'application/hta',
htc: 'text/x-component',
htm: 'text/html',
html: 'text/html',
htt: 'text/webviewhtml',
ico: 'image/x-icon',
ief: 'image/ief',
iii: 'application/x-iphone',
ins: 'application/x-internet-signup',
isp: 'application/x-internet-signup',
jfif: 'image/pipeg',
jpe: 'image/jpeg',
jpeg: 'image/jpeg',
jpg: 'image/jpeg',
png: 'image/png',
js: 'application/x-javascript',
latex: 'application/x-latex',
lha: 'application/octet-stream',
lsf: 'video/x-la-asf',
lsx: 'video/x-la-asf',
lzh: 'application/octet-stream',
m13: 'application/x-msmediaview',
m14: 'application/x-msmediaview',
m3u: 'audio/x-mpegurl',
man: 'application/x-troff-man',
mdb: 'application/x-msaccess',
me: 'application/x-troff-me',
mht: 'message/rfc822',
mhtml: 'message/rfc822',
mid: 'audio/mid',
mny: 'application/x-msmoney',
mov: 'video/quicktime',
movie: 'video/x-sgi-movie',
mp2: 'video/mpeg',
mp3: 'audio/mpeg',
mpa: 'video/mpeg',
mpe: 'video/mpeg',
mpeg: 'video/mpeg',
mpg: 'video/mpeg',
mpp: 'application/vnd.ms-project',
mpv2: 'video/mpeg',
ms: 'application/x-troff-ms',
mvb: 'application/x-msmediaview',
nws: 'message/rfc822',
oda: 'application/oda',
p10: 'application/pkcs10',
p12: 'application/x-pkcs12',
p7b: 'application/x-pkcs7-certificates',
p7c: 'application/x-pkcs7-mime',
p7m: 'application/x-pkcs7-mime',
p7r: 'application/x-pkcs7-certreqresp',
p7s: 'application/x-pkcs7-signature',
pbm: 'image/x-portable-bitmap',
pdf: 'application/pdf',
pfx: 'application/x-pkcs12',
pgm: 'image/x-portable-graymap',
pko: 'application/ynd.ms-pkipko',
pma: 'application/x-perfmon',
pmc: 'application/x-perfmon',
pml: 'application/x-perfmon',
pmr: 'application/x-perfmon',
pmw: 'application/x-perfmon',
pnm: 'image/x-portable-anymap',
pot: 'application/vnd.ms-powerpoint',
ppm: 'image/x-portable-pixmap',
pps: 'application/vnd.ms-powerpoint',
ppt: 'application/vnd.ms-powerpoint',
pptx:
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
prf: 'application/pics-rules',
ps: 'application/postscript',
pub: 'application/x-mspublisher',
qt: 'video/quicktime',
ra: 'audio/x-pn-realaudio',
ram: 'audio/x-pn-realaudio',
ras: 'image/x-cmu-raster',
rgb: 'image/x-rgb',
rmi: 'audio/mid',
roff: 'application/x-troff',
rtf: 'application/rtf',
rtx: 'text/richtext',
scd: 'application/x-msschedule',
sct: 'text/scriptlet',
setpay: 'application/set-payment-initiation',
setreg: 'application/set-registration-initiation',
sh: 'application/x-sh',
shar: 'application/x-shar',
sit: 'application/x-stuffit',
snd: 'audio/basic',
spc: 'application/x-pkcs7-certificates',
spl: 'application/futuresplash',
src: 'application/x-wais-source',
sst: 'application/vnd.ms-pkicertstore',
stl: 'application/vnd.ms-pkistl',
stm: 'text/html',
svg: 'image/svg+xml',
sv4cpio: 'application/x-sv4cpio',
sv4crc: 'application/x-sv4crc',
swf: 'application/x-shockwave-flash',
t: 'application/x-troff',
tar: 'application/x-tar',
tcl: 'application/x-tcl',
tex: 'application/x-tex',
texi: 'application/x-texinfo',
texinfo: 'application/x-texinfo',
tgz: 'application/x-compressed',
tif: 'image/tiff',
tiff: 'image/tiff',
tr: 'application/x-troff',
trm: 'application/x-msterminal',
tsv: 'text/tab-separated-values',
txt: 'text/plain',
uls: 'text/iuls',
ustar: 'application/x-ustar',
vcf: 'text/x-vcard',
vrml: 'x-world/x-vrml',
wav: 'audio/x-wav',
wcm: 'application/vnd.ms-works',
wdb: 'application/vnd.ms-works',
wks: 'application/vnd.ms-works',
wmf: 'application/x-msmetafile',
wps: 'application/vnd.ms-works',
wri: 'application/x-mswrite',
wrl: 'x-world/x-vrml',
wrz: 'x-world/x-vrml',
xaf: 'x-world/x-vrml',
xbm: 'image/x-xbitmap',
xla: 'application/vnd.ms-excel',
xlc: 'application/vnd.ms-excel',
xlm: 'application/vnd.ms-excel',
xls: 'application/vnd.ms-excel',
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
xlt: 'application/vnd.ms-excel',
xlw: 'application/vnd.ms-excel',
xof: 'x-world/x-vrml',
xpm: 'image/x-xpixmap',
xwd: 'image/x-xwindowdump',
z: 'application/x-compress',
zip: 'application/zip'
};
// 附上根据文件后缀获取MIME_TYPE_ARRAY方法
export class common{
static getType(val) {
if (val === null) return 'Null';
if (val === undefined) return 'Undefined'; // IE9兼容
let type = Object.prototype.toString.call(val);
type = type.substring(8, type.length - 1);
return type;
}
/**
* 获取文件类型MIME_TYPE
*/
static getMimeTypeList(extList = []) {
let acceptList = [];
const type = common.getType(extList);
if (!['String', 'Array'].includes(type)) return acceptList;
if (type === 'String') {
extList = extList ? extList.split(',') : [];
}
extList.forEach(item => {
if (MIME_TYPE_LIST[item]) acceptList.push(MIME_TYPE_LIST[item]);
});
return acceptList;
}
}