对于旧的*.doc文档,这就足够了:
header("Content-Type: application/msword");
我应该为新的。docx文档使用什么MIME类型?另外,对于pptx和xlsx文档?
对于旧的*.doc文档,这就足够了:
header("Content-Type: application/msword");
我应该为新的。docx文档使用什么MIME类型?另外,对于pptx和xlsx文档?
以下是用于HTTP内容流的正确Microsoft Office MIME类型:
Extension MIME Type
.doc application/msword
.dot application/msword
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm application/vnd.ms-word.document.macroEnabled.12
.dotm application/vnd.ms-word.template.macroEnabled.12
.xls application/vnd.ms-excel
.xlt application/vnd.ms-excel
.xla application/vnd.ms-excel
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm application/vnd.ms-excel.sheet.macroEnabled.12
.xltm application/vnd.ms-excel.template.macroEnabled.12
.xlam application/vnd.ms-excel.addin.macroEnabled.12
.xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12
.ppt application/vnd.ms-powerpoint
.pot application/vnd.ms-powerpoint
.pps application/vnd.ms-powerpoint
.ppa application/vnd.ms-powerpoint
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm application/vnd.ms-powerpoint.template.macroEnabled.12
.ppsm application/vnd.ms-powerpoint.slideshow.macroEnabled.12
.mdb application/vnd.ms-access
欲了解更多细节,请查看这篇TechNet文章和这篇博客文章。
或者,如果你在。net v4.5或更高版本中工作,尝试使用System.Web.MimeMapping.GetMimeMapping(yourFileName)来获取MIME类型。这比硬编码字符串要好得多。
更新:在.Net Core中,同样可以使用FileExtensionContentTypeProvider.TryGetContentType()实现。
加载一个。docx文件。
if let htmlFile = Bundle.main.path(forResource: "fileName", ofType: "docx") {
let url = URL(fileURLWithPath: htmlFile)
do{
let data = try Data(contentsOf: url)
self.webView.load(data, mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", textEncodingName: "UTF-8", baseURL: url)
}catch{
print("errrr")
}
}
Swift4
func mimeTypeForPath(path: String) -> String {
let url = NSURL(fileURLWithPath: path)
let pathExtension = url.pathExtension
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension! as NSString, nil)?.takeRetainedValue() {
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
return mimetype as String
}
}
return "application/octet-stream"
}
这里是一个JSON格式的(几乎)完整的文件扩展名的MIME。 你可以做这些例子:MIME["ppt"], MIME["docx"],等等
{
"x3d": "application/vnd.hzn-3d-crossword",
"3gp": "video/3gpp",
"3g2": "video/3gpp2",
"mseq": "application/vnd.mseq",
"pwn": "application/vnd.3m.post-it-notes",
"plb": "application/vnd.3gpp.pic-bw-large",
"psb": "application/vnd.3gpp.pic-bw-small",
"pvb": "application/vnd.3gpp.pic-bw-var",
"tcap": "application/vnd.3gpp2.tcap",
"7z": "application/x-7z-compressed",
"abw": "application/x-abiword",
"ace": "application/x-ace-compressed",
"acc": "application/vnd.americandynamics.acc",
"acu": "application/vnd.acucobol",
"atc": "application/vnd.acucorp",
"adp": "audio/adpcm",
"aab": "application/x-authorware-bin",
"aam": "application/x-authorware-map",
"aas": "application/x-authorware-seg",
"air": "application/vnd.adobe.air-application-installer-package+zip",
"swf": "application/x-shockwave-flash",
"fxp": "application/vnd.adobe.fxp",
"pdf": "application/pdf",
"ppd": "application/vnd.cups-ppd",
"dir": "application/x-director",
"xdp": "application/vnd.adobe.xdp+xml",
"xfdf": "application/vnd.adobe.xfdf",
"aac": "audio/x-aac",
"ahead": "application/vnd.ahead.space",
"azf": "application/vnd.airzip.filesecure.azf",
"azs": "application/vnd.airzip.filesecure.azs",
"azw": "application/vnd.amazon.ebook",
"ami": "application/vnd.amiga.ami",
"N/A": "application/andrew-inset",
"apk": "application/vnd.android.package-archive",
"cii": "application/vnd.anser-web-certificate-issue-initiation",
"fti": "application/vnd.anser-web-funds-transfer-initiation",
"atx": "application/vnd.antix.game-component",
"dmg": "application/x-apple-diskimage",
"mpkg": "application/vnd.apple.installer+xml",
"aw": "application/applixware",
"mp3": "audio/mpeg",
"les": "application/vnd.hhe.lesson-player",
"swi": "application/vnd.aristanetworks.swi",
"s": "text/x-asm",
"atomcat": "application/atomcat+xml",
"atomsvc": "application/atomsvc+xml",
"atom": "application/atom+xml",
"ac": "application/pkix-attr-cert",
"aif": "audio/x-aiff",
"avi": "video/x-msvideo",
"aep": "application/vnd.audiograph",
"dxf": "image/vnd.dxf",
"dwf": "model/vnd.dwf",
"par": "text/plain-bas",
"bcpio": "application/x-bcpio",
"bin": "application/octet-stream",
"bmp": "image/bmp",
"torrent": "application/x-bittorrent",
"cod": "application/vnd.rim.cod",
"mpm": "application/vnd.blueice.multipass",
"bmi": "application/vnd.bmi",
"sh": "application/x-sh",
"btif": "image/prs.btif",
"rep": "application/vnd.businessobjects",
"bz": "application/x-bzip",
"bz2": "application/x-bzip2",
"csh": "application/x-csh",
"c": "text/x-c",
"cdxml": "application/vnd.chemdraw+xml",
"css": "text/css",
"cdx": "chemical/x-cdx",
"cml": "chemical/x-cml",
"csml": "chemical/x-csml",
"cdbcmsg": "application/vnd.contact.cmsg",
"cla": "application/vnd.claymore",
"c4g": "application/vnd.clonk.c4group",
"sub": "image/vnd.dvb.subtitle",
"cdmia": "application/cdmi-capability",
"cdmic": "application/cdmi-container",
"cdmid": "application/cdmi-domain",
"cdmio": "application/cdmi-object",
"cdmiq": "application/cdmi-queue",
"c11amc": "application/vnd.cluetrust.cartomobile-config",
"c11amz": "application/vnd.cluetrust.cartomobile-config-pkg",
"ras": "image/x-cmu-raster",
"dae": "model/vnd.collada+xml",
"csv": "text/csv",
"cpt": "application/mac-compactpro",
"wmlc": "application/vnd.wap.wmlc",
"cgm": "image/cgm",
"ice": "x-conference/x-cooltalk",
"cmx": "image/x-cmx",
"xar": "application/vnd.xara",
"cmc": "application/vnd.cosmocaller",
"cpio": "application/x-cpio",
"clkx": "application/vnd.crick.clicker",
"clkk": "application/vnd.crick.clicker.keyboard",
"clkp": "application/vnd.crick.clicker.palette",
"clkt": "application/vnd.crick.clicker.template",
"clkw": "application/vnd.crick.clicker.wordbank",
"wbs": "application/vnd.criticaltools.wbs+xml",
"cryptonote": "application/vnd.rig.cryptonote",
"cif": "chemical/x-cif",
"cmdf": "chemical/x-cmdf",
"cu": "application/cu-seeme",
"cww": "application/prs.cww",
"curl": "text/vnd.curl",
"dcurl": "text/vnd.curl.dcurl",
"mcurl": "text/vnd.curl.mcurl",
"scurl": "text/vnd.curl.scurl",
"car": "application/vnd.curl.car",
"pcurl": "application/vnd.curl.pcurl",
"cmp": "application/vnd.yellowriver-custom-menu",
"dssc": "application/dssc+der",
"xdssc": "application/dssc+xml",
"deb": "application/x-debian-package",
"uva": "audio/vnd.dece.audio",
"uvi": "image/vnd.dece.graphic",
"uvh": "video/vnd.dece.hd",
"uvm": "video/vnd.dece.mobile",
"uvu": "video/vnd.uvvu.mp4",
"uvp": "video/vnd.dece.pd",
"uvs": "video/vnd.dece.sd",
"uvv": "video/vnd.dece.video",
"dvi": "application/x-dvi",
"seed": "application/vnd.fdsn.seed",
"dtb": "application/x-dtbook+xml",
"res": "application/x-dtbresource+xml",
"ait": "application/vnd.dvb.ait",
"svc": "application/vnd.dvb.service",
"eol": "audio/vnd.digital-winds",
"djvu": "image/vnd.djvu",
"dtd": "application/xml-dtd",
"mlp": "application/vnd.dolby.mlp",
"wad": "application/x-doom",
"dpg": "application/vnd.dpgraph",
"dra": "audio/vnd.dra",
"dfac": "application/vnd.dreamfactory",
"dts": "audio/vnd.dts",
"dtshd": "audio/vnd.dts.hd",
"dwg": "image/vnd.dwg",
"geo": "application/vnd.dynageo",
"es": "application/ecmascript",
"mag": "application/vnd.ecowin.chart",
"mmr": "image/vnd.fujixerox.edmics-mmr",
"rlc": "image/vnd.fujixerox.edmics-rlc",
"exi": "application/exi",
"mgz": "application/vnd.proteus.magazine",
"epub": "application/epub+zip",
"eml": "message/rfc822",
"nml": "application/vnd.enliven",
"xpr": "application/vnd.is-xpr",
"xif": "image/vnd.xiff",
"xfdl": "application/vnd.xfdl",
"emma": "application/emma+xml",
"ez2": "application/vnd.ezpix-album",
"ez3": "application/vnd.ezpix-package",
"fst": "image/vnd.fst",
"fvt": "video/vnd.fvt",
"fbs": "image/vnd.fastbidsheet",
"fe_launch": "application/vnd.denovo.fcselayout-link",
"f4v": "video/x-f4v",
"flv": "video/x-flv",
"fpx": "image/vnd.fpx",
"npx": "image/vnd.net-fpx",
"flx": "text/vnd.fmi.flexstor",
"fli": "video/x-fli",
"ftc": "application/vnd.fluxtime.clip",
"fdf": "application/vnd.fdf",
"f": "text/x-fortran",
"mif": "application/vnd.mif",
"fm": "application/vnd.framemaker",
"fh": "image/x-freehand",
"fsc": "application/vnd.fsc.weblaunch",
"fnc": "application/vnd.frogans.fnc",
"ltf": "application/vnd.frogans.ltf",
"ddd": "application/vnd.fujixerox.ddd",
"xdw": "application/vnd.fujixerox.docuworks",
"xbd": "application/vnd.fujixerox.docuworks.binder",
"oas": "application/vnd.fujitsu.oasys",
"oa2": "application/vnd.fujitsu.oasys2",
"oa3": "application/vnd.fujitsu.oasys3",
"fg5": "application/vnd.fujitsu.oasysgp",
"bh2": "application/vnd.fujitsu.oasysprs",
"spl": "application/x-futuresplash",
"fzs": "application/vnd.fuzzysheet",
"g3": "image/g3fax",
"gmx": "application/vnd.gmx",
"gtw": "model/vnd.gtw",
"txd": "application/vnd.genomatix.tuxedo",
"ggb": "application/vnd.geogebra.file",
"ggt": "application/vnd.geogebra.tool",
"gdl": "model/vnd.gdl",
"gex": "application/vnd.geometry-explorer",
"gxt": "application/vnd.geonext",
"g2w": "application/vnd.geoplan",
"g3w": "application/vnd.geospace",
"gsf": "application/x-font-ghostscript",
"bdf": "application/x-font-bdf",
"gtar": "application/x-gtar",
"texinfo": "application/x-texinfo",
"gnumeric": "application/x-gnumeric",
"kml": "application/vnd.google-earth.kml+xml",
"kmz": "application/vnd.google-earth.kmz",
"gqf": "application/vnd.grafeq",
"gif": "image/gif",
"gv": "text/vnd.graphviz",
"gac": "application/vnd.groove-account",
"ghf": "application/vnd.groove-help",
"gim": "application/vnd.groove-identity-message",
"grv": "application/vnd.groove-injector",
"gtm": "application/vnd.groove-tool-message",
"tpl": "application/vnd.groove-tool-template",
"vcg": "application/vnd.groove-vcard",
"h261": "video/h261",
"h263": "video/h263",
"h264": "video/h264",
"hpid": "application/vnd.hp-hpid",
"hps": "application/vnd.hp-hps",
"hdf": "application/x-hdf",
"rip": "audio/vnd.rip",
"hbci": "application/vnd.hbci",
"jlt": "application/vnd.hp-jlyt",
"pcl": "application/vnd.hp-pcl",
"hpgl": "application/vnd.hp-hpgl",
"hvs": "application/vnd.yamaha.hv-script",
"hvd": "application/vnd.yamaha.hv-dic",
"hvp": "application/vnd.yamaha.hv-voice",
"sfd-hdstx": "application/vnd.hydrostatix.sof-data",
"stk": "application/hyperstudio",
"hal": "application/vnd.hal+xml",
"html": "text/html",
"irm": "application/vnd.ibm.rights-management",
"sc": "application/vnd.ibm.secure-container",
"ics": "text/calendar",
"icc": "application/vnd.iccprofile",
"ico": "image/x-icon",
"igl": "application/vnd.igloader",
"ief": "image/ief",
"ivp": "application/vnd.immervision-ivp",
"ivu": "application/vnd.immervision-ivu",
"rif": "application/reginfo+xml",
"3dml": "text/vnd.in3d.3dml",
"spot": "text/vnd.in3d.spot",
"igs": "model/iges",
"i2g": "application/vnd.intergeo",
"cdy": "application/vnd.cinderella",
"xpw": "application/vnd.intercon.formnet",
"fcs": "application/vnd.isac.fcs",
"ipfix": "application/ipfix",
"cer": "application/pkix-cert",
"pki": "application/pkixcmp",
"crl": "application/pkix-crl",
"pkipath": "application/pkix-pkipath",
"igm": "application/vnd.insors.igm",
"rcprofile": "application/vnd.ipunplugged.rcprofile",
"irp": "application/vnd.irepository.package+xml",
"jad": "text/vnd.sun.j2me.app-descriptor",
"jar": "application/java-archive",
"class": "application/java-vm",
"jnlp": "application/x-java-jnlp-file",
"ser": "application/java-serialized-object",
"java": "text/x-java-source,java",
"js": "application/javascript",
"json": "application/json",
"joda": "application/vnd.joost.joda-archive",
"jpm": "video/jpm",
"jpeg": "image/x-citrix-jpeg",
"jpg": "image/x-citrix-jpeg",
"pjpeg": "image/pjpeg",
"jpgv": "video/jpeg",
"ktz": "application/vnd.kahootz",
"mmd": "application/vnd.chipnuts.karaoke-mmd",
"karbon": "application/vnd.kde.karbon",
"chrt": "application/vnd.kde.kchart",
"kfo": "application/vnd.kde.kformula",
"flw": "application/vnd.kde.kivio",
"kon": "application/vnd.kde.kontour",
"kpr": "application/vnd.kde.kpresenter",
"ksp": "application/vnd.kde.kspread",
"kwd": "application/vnd.kde.kword",
"htke": "application/vnd.kenameaapp",
"kia": "application/vnd.kidspiration",
"kne": "application/vnd.kinar",
"sse": "application/vnd.kodak-descriptor",
"lasxml": "application/vnd.las.las+xml",
"latex": "application/x-latex",
"lbd": "application/vnd.llamagraphics.life-balance.desktop",
"lbe": "application/vnd.llamagraphics.life-balance.exchange+xml",
"jam": "application/vnd.jam",
"123": "application/vnd.lotus-1-2-3",
"apr": "application/vnd.lotus-approach",
"pre": "application/vnd.lotus-freelance",
"nsf": "application/vnd.lotus-notes",
"org": "application/vnd.lotus-organizer",
"scm": "application/vnd.lotus-screencam",
"lwp": "application/vnd.lotus-wordpro",
"lvp": "audio/vnd.lucent.voice",
"m3u": "audio/x-mpegurl",
"m4v": "video/x-m4v",
"hqx": "application/mac-binhex40",
"portpkg": "application/vnd.macports.portpkg",
"mgp": "application/vnd.osgeo.mapguide.package",
"mrc": "application/marc",
"mrcx": "application/marcxml+xml",
"mxf": "application/mxf",
"nbp": "application/vnd.wolfram.player",
"ma": "application/mathematica",
"mathml": "application/mathml+xml",
"mbox": "application/mbox",
"mc1": "application/vnd.medcalcdata",
"mscml": "application/mediaservercontrol+xml",
"cdkey": "application/vnd.mediastation.cdkey",
"mwf": "application/vnd.mfer",
"mfm": "application/vnd.mfmp",
"msh": "model/mesh",
"mads": "application/mads+xml",
"mets": "application/mets+xml",
"mods": "application/mods+xml",
"meta4": "application/metalink4+xml",
"mcd": "application/vnd.mcd",
"flo": "application/vnd.micrografx.flo",
"igx": "application/vnd.micrografx.igx",
"es3": "application/vnd.eszigno3+xml",
"mdb": "application/x-msaccess",
"asf": "video/x-ms-asf",
"exe": "application/x-msdownload",
"cil": "application/vnd.ms-artgalry",
"cab": "application/vnd.ms-cab-compressed",
"ims": "application/vnd.ms-ims",
"application": "application/x-ms-application",
"clp": "application/x-msclip",
"mdi": "image/vnd.ms-modi",
"eot": "application/vnd.ms-fontobject",
"xls": "application/vnd.ms-excel",
"xlam": "application/vnd.ms-excel.addin.macroenabled.12",
"xlsb": "application/vnd.ms-excel.sheet.binary.macroenabled.12",
"xltm": "application/vnd.ms-excel.template.macroenabled.12",
"xlsm": "application/vnd.ms-excel.sheet.macroenabled.12",
"chm": "application/vnd.ms-htmlhelp",
"crd": "application/x-mscardfile",
"lrm": "application/vnd.ms-lrm",
"mvb": "application/x-msmediaview",
"mny": "application/x-msmoney",
"pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
"ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
"potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
"xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
"docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
"obd": "application/x-msbinder",
"thmx": "application/vnd.ms-officetheme",
"onetoc": "application/onenote",
"pya": "audio/vnd.ms-playready.media.pya",
"pyv": "video/vnd.ms-playready.media.pyv",
"ppt": "application/vnd.ms-powerpoint",
"ppam": "application/vnd.ms-powerpoint.addin.macroenabled.12",
"sldm": "application/vnd.ms-powerpoint.slide.macroenabled.12",
"pptm": "application/vnd.ms-powerpoint.presentation.macroenabled.12",
"ppsm": "application/vnd.ms-powerpoint.slideshow.macroenabled.12",
"potm": "application/vnd.ms-powerpoint.template.macroenabled.12",
"mpp": "application/vnd.ms-project",
"pub": "application/x-mspublisher",
"scd": "application/x-msschedule",
"xap": "application/x-silverlight-app",
"stl": "application/vnd.ms-pki.stl",
"cat": "application/vnd.ms-pki.seccat",
"vsd": "application/vnd.visio",
"vsdx": "application/vnd.visio2013",
"wm": "video/x-ms-wm",
"wma": "audio/x-ms-wma",
"wax": "audio/x-ms-wax",
"wmx": "video/x-ms-wmx",
"wmd": "application/x-ms-wmd",
"wpl": "application/vnd.ms-wpl",
"wmz": "application/x-ms-wmz",
"wmv": "video/x-ms-wmv",
"wvx": "video/x-ms-wvx",
"wmf": "application/x-msmetafile",
"trm": "application/x-msterminal",
"doc": "application/msword",
"docm": "application/vnd.ms-word.document.macroenabled.12",
"dotm": "application/vnd.ms-word.template.macroenabled.12",
"wri": "application/x-mswrite",
"wps": "application/vnd.ms-works",
"xbap": "application/x-ms-xbap",
"xps": "application/vnd.ms-xpsdocument",
"mid": "audio/midi",
"mpy": "application/vnd.ibm.minipay",
"afp": "application/vnd.ibm.modcap",
"rms": "application/vnd.jcp.javame.midlet-rms",
"tmo": "application/vnd.tmobile-livetv",
"prc": "application/x-mobipocket-ebook",
"mbk": "application/vnd.mobius.mbk",
"dis": "application/vnd.mobius.dis",
"plc": "application/vnd.mobius.plc",
"mqy": "application/vnd.mobius.mqy",
"msl": "application/vnd.mobius.msl",
"txf": "application/vnd.mobius.txf",
"daf": "application/vnd.mobius.daf",
"fly": "text/vnd.fly",
"mpc": "application/vnd.mophun.certificate",
"mpn": "application/vnd.mophun.application",
"mj2": "video/mj2",
"mpga": "audio/mpeg",
"mxu": "video/vnd.mpegurl",
"mpeg": "video/mpeg",
"m21": "application/mp21",
"mp4a": "audio/mp4",
"mp4": "video/mp4",
"m3u8": "application/vnd.apple.mpegurl",
"mus": "application/vnd.musician",
"msty": "application/vnd.muvee.style",
"mxml": "application/xv+xml",
"ngdat": "application/vnd.nokia.n-gage.data",
"n-gage": "application/vnd.nokia.n-gage.symbian.install",
"ncx": "application/x-dtbncx+xml",
"nc": "application/x-netcdf",
"nlu": "application/vnd.neurolanguage.nlu",
"dna": "application/vnd.dna",
"nnd": "application/vnd.noblenet-directory",
"nns": "application/vnd.noblenet-sealer",
"nnw": "application/vnd.noblenet-web",
"rpst": "application/vnd.nokia.radio-preset",
"rpss": "application/vnd.nokia.radio-presets",
"n3": "text/n3",
"edm": "application/vnd.novadigm.edm",
"edx": "application/vnd.novadigm.edx",
"ext": "application/vnd.novadigm.ext",
"gph": "application/vnd.flographit",
"ecelp4800": "audio/vnd.nuera.ecelp4800",
"ecelp7470": "audio/vnd.nuera.ecelp7470",
"ecelp9600": "audio/vnd.nuera.ecelp9600",
"oda": "application/oda",
"ogx": "application/ogg",
"oga": "audio/ogg",
"ogv": "video/ogg",
"dd2": "application/vnd.oma.dd2+xml",
"oth": "application/vnd.oasis.opendocument.text-web",
"opf": "application/oebps-package+xml",
"qbo": "application/vnd.intu.qbo",
"oxt": "application/vnd.openofficeorg.extension",
"osf": "application/vnd.yamaha.openscoreformat",
"weba": "audio/webm",
"webm": "video/webm",
"odc": "application/vnd.oasis.opendocument.chart",
"otc": "application/vnd.oasis.opendocument.chart-template",
"odb": "application/vnd.oasis.opendocument.database",
"odf": "application/vnd.oasis.opendocument.formula",
"odft": "application/vnd.oasis.opendocument.formula-template",
"odg": "application/vnd.oasis.opendocument.graphics",
"otg": "application/vnd.oasis.opendocument.graphics-template",
"odi": "application/vnd.oasis.opendocument.image",
"oti": "application/vnd.oasis.opendocument.image-template",
"odp": "application/vnd.oasis.opendocument.presentation",
"otp": "application/vnd.oasis.opendocument.presentation-template",
"ods": "application/vnd.oasis.opendocument.spreadsheet",
"ots": "application/vnd.oasis.opendocument.spreadsheet-template",
"odt": "application/vnd.oasis.opendocument.text",
"odm": "application/vnd.oasis.opendocument.text-master",
"ott": "application/vnd.oasis.opendocument.text-template",
"ktx": "image/ktx",
"sxc": "application/vnd.sun.xml.calc",
"stc": "application/vnd.sun.xml.calc.template",
"sxd": "application/vnd.sun.xml.draw",
"std": "application/vnd.sun.xml.draw.template",
"sxi": "application/vnd.sun.xml.impress",
"sti": "application/vnd.sun.xml.impress.template",
"sxm": "application/vnd.sun.xml.math",
"sxw": "application/vnd.sun.xml.writer",
"sxg": "application/vnd.sun.xml.writer.global",
"stw": "application/vnd.sun.xml.writer.template",
"otf": "application/x-font-otf",
"osfpvg": "application/vnd.yamaha.openscoreformat.osfpvg+xml",
"dp": "application/vnd.osgi.dp",
"pdb": "application/vnd.palm",
"p": "text/x-pascal",
"paw": "application/vnd.pawaafile",
"pclxl": "application/vnd.hp-pclxl",
"efif": "application/vnd.picsel",
"pcx": "image/x-pcx",
"psd": "image/vnd.adobe.photoshop",
"prf": "application/pics-rules",
"pic": "image/x-pict",
"chat": "application/x-chat",
"p10": "application/pkcs10",
"p12": "application/x-pkcs12",
"p7m": "application/pkcs7-mime",
"p7s": "application/pkcs7-signature",
"p7r": "application/x-pkcs7-certreqresp",
"p7b": "application/x-pkcs7-certificates",
"p8": "application/pkcs8",
"plf": "application/vnd.pocketlearn",
"pnm": "image/x-portable-anymap",
"pbm": "image/x-portable-bitmap",
"pcf": "application/x-font-pcf",
"pfr": "application/font-tdpfr",
"pgn": "application/x-chess-pgn",
"pgm": "image/x-portable-graymap",
"png": "image/x-png",
"ppm": "image/x-portable-pixmap",
"pskcxml": "application/pskc+xml",
"pml": "application/vnd.ctc-posml",
"ai": "application/postscript",
"pfa": "application/x-font-type1",
"pbd": "application/vnd.powerbuilder6",
"pgp": "application/pgp-signature",
"box": "application/vnd.previewsystems.box",
"ptid": "application/vnd.pvi.ptid1",
"pls": "application/pls+xml",
"str": "application/vnd.pg.format",
"ei6": "application/vnd.pg.osasli",
"dsc": "text/prs.lines.tag",
"psf": "application/x-font-linux-psf",
"qps": "application/vnd.publishare-delta-tree",
"wg": "application/vnd.pmi.widget",
"qxd": "application/vnd.quark.quarkxpress",
"esf": "application/vnd.epson.esf",
"msf": "application/vnd.epson.msf",
"ssf": "application/vnd.epson.ssf",
"qam": "application/vnd.epson.quickanime",
"qfx": "application/vnd.intu.qfx",
"qt": "video/quicktime",
"rar": "application/x-rar-compressed",
"ram": "audio/x-pn-realaudio",
"rmp": "audio/x-pn-realaudio-plugin",
"rsd": "application/rsd+xml",
"rm": "application/vnd.rn-realmedia",
"bed": "application/vnd.realvnc.bed",
"mxl": "application/vnd.recordare.musicxml",
"musicxml": "application/vnd.recordare.musicxml+xml",
"rnc": "application/relax-ng-compact-syntax",
"rdz": "application/vnd.data-vision.rdz",
"rdf": "application/rdf+xml",
"rp9": "application/vnd.cloanto.rp9",
"jisp": "application/vnd.jisp",
"rtf": "application/rtf",
"rtx": "text/richtext",
"link66": "application/vnd.route66.link66+xml",
"rss": "application/rss+xml",
"shf": "application/shf+xml",
"st": "application/vnd.sailingtracker.track",
"svg": "image/svg+xml",
"sus": "application/vnd.sus-calendar",
"sru": "application/sru+xml",
"setpay": "application/set-payment-initiation",
"setreg": "application/set-registration-initiation",
"sema": "application/vnd.sema",
"semd": "application/vnd.semd",
"semf": "application/vnd.semf",
"see": "application/vnd.seemail",
"snf": "application/x-font-snf",
"spq": "application/scvp-vp-request",
"spp": "application/scvp-vp-response",
"scq": "application/scvp-cv-request",
"scs": "application/scvp-cv-response",
"sdp": "application/sdp",
"etx": "text/x-setext",
"movie": "video/x-sgi-movie",
"ifm": "application/vnd.shana.informed.formdata",
"itp": "application/vnd.shana.informed.formtemplate",
"iif": "application/vnd.shana.informed.interchange",
"ipk": "application/vnd.shana.informed.package",
"tfi": "application/thraud+xml",
"shar": "application/x-shar",
"rgb": "image/x-rgb",
"slt": "application/vnd.epson.salt",
"aso": "application/vnd.accpac.simply.aso",
"imp": "application/vnd.accpac.simply.imp",
"twd": "application/vnd.simtech-mindmapper",
"csp": "application/vnd.commonspace",
"saf": "application/vnd.yamaha.smaf-audio",
"mmf": "application/vnd.smaf",
"spf": "application/vnd.yamaha.smaf-phrase",
"teacher": "application/vnd.smart.teacher",
"svd": "application/vnd.svd",
"rq": "application/sparql-query",
"srx": "application/sparql-results+xml",
"gram": "application/srgs",
"grxml": "application/srgs+xml",
"ssml": "application/ssml+xml",
"skp": "application/vnd.koan",
"sgml": "text/sgml",
"sdc": "application/vnd.stardivision.calc",
"sda": "application/vnd.stardivision.draw",
"sdd": "application/vnd.stardivision.impress",
"smf": "application/vnd.stardivision.math",
"sdw": "application/vnd.stardivision.writer",
"sgl": "application/vnd.stardivision.writer-global",
"sm": "application/vnd.stepmania.stepchart",
"sit": "application/x-stuffit",
"sitx": "application/x-stuffitx",
"sdkm": "application/vnd.solent.sdkm+xml",
"xo": "application/vnd.olpc-sugar",
"au": "audio/basic",
"wqd": "application/vnd.wqd",
"sis": "application/vnd.symbian.install",
"smi": "application/smil+xml",
"xsm": "application/vnd.syncml+xml",
"bdm": "application/vnd.syncml.dm+wbxml",
"xdm": "application/vnd.syncml.dm+xml",
"sv4cpio": "application/x-sv4cpio",
"sv4crc": "application/x-sv4crc",
"sbml": "application/sbml+xml",
"tsv": "text/tab-separated-values",
"tiff": "image/tiff",
"tao": "application/vnd.tao.intent-module-archive",
"tar": "application/x-tar",
"tcl": "application/x-tcl",
"tex": "application/x-tex",
"tfm": "application/x-tex-tfm",
"tei": "application/tei+xml",
"txt": "text/plain",
"dxp": "application/vnd.spotfire.dxp",
"sfs": "application/vnd.spotfire.sfs",
"tsd": "application/timestamped-data",
"tpt": "application/vnd.trid.tpt",
"mxs": "application/vnd.triscape.mxs",
"t": "text/troff",
"tra": "application/vnd.trueapp",
"ttf": "application/x-font-ttf",
"ttl": "text/turtle",
"umj": "application/vnd.umajin",
"uoml": "application/vnd.uoml+xml",
"unityweb": "application/vnd.unity",
"ufd": "application/vnd.ufdl",
"uri": "text/uri-list",
"utz": "application/vnd.uiq.theme",
"ustar": "application/x-ustar",
"uu": "text/x-uuencode",
"vcs": "text/x-vcalendar",
"vcf": "text/x-vcard",
"vcd": "application/x-cdlink",
"vsf": "application/vnd.vsf",
"wrl": "model/vrml",
"vcx": "application/vnd.vcx",
"mts": "model/vnd.mts",
"vtu": "model/vnd.vtu",
"vis": "application/vnd.visionary",
"viv": "video/vnd.vivo",
"ccxml": "application/ccxml+xml,",
"vxml": "application/voicexml+xml",
"src": "application/x-wais-source",
"wbxml": "application/vnd.wap.wbxml",
"wbmp": "image/vnd.wap.wbmp",
"wav": "audio/x-wav",
"davmount": "application/davmount+xml",
"woff": "application/x-font-woff",
"wspolicy": "application/wspolicy+xml",
"webp": "image/webp",
"wtb": "application/vnd.webturbo",
"wgt": "application/widget",
"hlp": "application/winhlp",
"wml": "text/vnd.wap.wml",
"wmls": "text/vnd.wap.wmlscript",
"wmlsc": "application/vnd.wap.wmlscriptc",
"wpd": "application/vnd.wordperfect",
"stf": "application/vnd.wt.stf",
"wsdl": "application/wsdl+xml",
"xbm": "image/x-xbitmap",
"xpm": "image/x-xpixmap",
"xwd": "image/x-xwindowdump",
"der": "application/x-x509-ca-cert",
"fig": "application/x-xfig",
"xhtml": "application/xhtml+xml",
"xml": "application/xml",
"xdf": "application/xcap-diff+xml",
"xenc": "application/xenc+xml",
"xer": "application/patch-ops-error+xml",
"rl": "application/resource-lists+xml",
"rs": "application/rls-services+xml",
"rld": "application/resource-lists-diff+xml",
"xslt": "application/xslt+xml",
"xop": "application/xop+xml",
"xpi": "application/x-xpinstall",
"xspf": "application/xspf+xml",
"xul": "application/vnd.mozilla.xul+xml",
"xyz": "chemical/x-xyz",
"yaml": "text/yaml",
"yang": "application/yang",
"yin": "application/yin+xml",
"zir": "application/vnd.zul",
"zip": "application/zip",
"zmm": "application/vnd.handheld-entertainment+xml",
"zaz": "application/vnd.zzazz.deck+xml"
}
编辑:
根据@Octo Poulos的建议:
分开jpeg和jpg MIME成两个不同的键 更新MIME的mp4格式为视频/mp4
这篇文章将探讨在不同的编程语言中获取MIME类型的各种方法,并将它们的CONS作为一行描述作为标题。所以,根据自己的情况使用它们,选择最适合自己的。
如。当用户可能提供.xls, .xlsx或.xlsm中的任何一个,而你不想编写代码测试扩展并为每个扩展提供mime类型时,下面的代码特别有用。让系统来做这项工作。
Python 3
使用python-magic
>>> pip install python-magic
>>> import magic
>>> magic.from_file("Employee.pdf", mime=True)
'application/pdf'
使用内置的MimeTypes模块-将文件名映射到MimeTypes模块
>>> import mimetypes
>>> mimetypes.init()
>>> mimetypes.knownfiles
['/etc/mime.types', '/etc/httpd/mime.types', ... ]
>>> mimetypes.suffix_map['.tgz']
'.tar.gz'
>>> mimetypes.encodings_map['.gz']
'gzip'
>>> mimetypes.types_map['.tgz']
'application/x-tar-gz'
JAVA 7
来源:Baeldung关于Java中的文件MIME类型的博客
操作系统相关
@Test
public void get_JAVA7_mimetype() {
Path path = new File("Employee.xlsx").toPath();
String mimeType = Files.probeContentType(path);
assertEquals(mimeType, "application/vnd.ms-excel");
}
它将使用filettypedetector实现探测MIME类型,并调用每个实现的probeContentType来解析该类型。因此,如果文件为实现所知,则返回内容类型。但是,如果没有发生这种情况,则调用系统默认的文件类型检测程序。
使用输入流的前几个字符进行解析
@Test
public void getMIMEType_from_Extension(){
File file = new File("Employee.xlsx");
String mimeType = URLConnection.guessContentTypeFromName(file.getName());
assertEquals(mimeType, "application/vnd.ms-excel");
}
使用内置的MIME类型表
@Test
public void getMIMEType_UsingGetFileNameMap(){
File file = new File("Employee.xlsx");
FileNameMap fileNameMap = URLConnection.getFileNameMap();
String mimeType = fileNameMap.getContentTypeFor(file.getName());
assertEquals(mimeType, "image/png");
}
它返回URLConnection的所有实例使用的MIME类型矩阵,然后用于解析输入文件类型。然而,当涉及到URLConnection时,这个MIME类型矩阵是非常有限的。
默认情况下,该类使用content-types。属性文件在JRE_HOME/lib。但是,我们可以通过使用content.types.user.table属性指定一个特定于用户的表来扩展它:
System.setProperty("content.types.user.table","<path-to-file>");
JavaScript
来源:FileReader API & Medium关于在JavaScript中使用魔法数字获取Mime类型的文章
解释使用FileReader API获取的魔数
当使用javaScript根据文件流获取MimeType时,最终结果如下所示。打开嵌入式jsFiddle来查看和理解这种方法。
额外的好处:大多数MIME类型都可以访问,你也可以在getMimetype函数中添加自定义MIME类型。此外,它完全支持MS Office文件Mime类型。
在这个例子中,计算文件mime类型的步骤如下:
The user selects a file. Take the first 4 bytes of the file using the slice method. Create a new FileReader instance Use the FileReader to read the 4 bytes you sliced out as an array buffer. Since the array buffer is just a generic way to represent a binary buffer we need to create a TypedArray, in this case an Uint8Array. With a TypedArray at our hands we can retrieve every byte and transform it to hexadecimal (by using toString(16)). We now have a way to get the magic numbers from a file by reading the first four bytes. The final step is to map it to a real mime type.
浏览器支持(总体高于95%,在所有现代浏览器中接近100%):
const uploads = [] const fileSelector = document.getElementById('file-selector') fileSelector.addEventListener('change', (event) => { console.time('FileOpen') const file = event.target.files[0] const filereader = new FileReader() filereader.onloadend = function(evt) { if (evt.target.readyState === FileReader.DONE) { const uint = new Uint8Array(evt.target.result) let bytes = [] uint.forEach((byte) => { bytes.push(byte.toString(16)) }) const hex = bytes.join('').toUpperCase() uploads.push({ filename: file.name, filetype: file.type ? file.type : 'Unknown/Extension missing', binaryFileType: getMimetype(hex), hex: hex }) render() } console.timeEnd('FileOpen') } const blob = file.slice(0, 4); filereader.readAsArrayBuffer(blob); }) const render = () => { const container = document.getElementById('files') const uploadedFiles = uploads.map((file) => { return `<div class=result><hr /> <span class=filename>Filename: <strong>${file.filename}</strong></span><br> <span class=fileObject>File Object (Mime Type):<strong> ${file.filetype}</strong></span><br> <span class=binaryObject>Binary (Mime Type):<strong> ${file.binaryFileType}</strong></span><br> <span class=HexCode>Hex Code (Magic Number):<strong> <em>${file.hex}</strong></span></em> </div>` }) container.innerHTML = uploadedFiles.join('') } const getMimetype = (signature) => { switch (signature) { case '89504E47': return 'image/png' case '47494638': return 'image/gif' case '25504446': return 'application/pdf' case 'FFD8FFDB': case 'FFD8FFE0': case 'FFD8FFE1': return 'image/jpeg' case '504B0304': return 'application/zip' case '504B34': return 'application/vnd.ms-excel.sheet.macroEnabled.12' default: return 'Unknown filetype' } } .result { font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif; line-height: 20px; font-size: 14px; margin: 10px 0; } .filename { color: #333; font-size: 16px; } .fileObject { color: #a53; } .binaryObject { color: #63f; } .HexCode { color: #262; } em { padding: 2px 4px; background-color: #efefef; font-style: normal; } input[type=file] { background-color: #4CAF50; border: none; color: white; padding: 8px 16px; text-decoration: none; margin: 4px 2px; cursor: pointer; } <body> <input type="file" id="file-selector"> <div id="files"></div>
如果有人想要Dirk Vollmar在c# switch语句中的答案:
case "doc": return "application/msword";
case "dot": return "application/msword";
case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
case "dotx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
case "docm": return "application/vnd.ms-word.document.macroEnabled.12";
case "dotm": return "application/vnd.ms-word.template.macroEnabled.12";
case "xls": return "application/vnd.ms-excel";
case "xlt": return "application/vnd.ms-excel";
case "xla": return "application/vnd.ms-excel";
case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
case "xltx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.template";
case "xlsm": return "application/vnd.ms-excel.sheet.macroEnabled.12";
case "xltm": return "application/vnd.ms-excel.template.macroEnabled.12";
case "xlam": return "application/vnd.ms-excel.addin.macroEnabled.12";
case "xlsb": return "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
case "ppt": return "application/vnd.ms-powerpoint";
case "pot": return "application/vnd.ms-powerpoint";
case "pps": return "application/vnd.ms-powerpoint";
case "ppa": return "application/vnd.ms-powerpoint";
case "pptx": return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
case "potx": return "application/vnd.openxmlformats-officedocument.presentationml.template";
case "ppsx": return "application/vnd.openxmlformats-officedocument.presentationml.slideshow";
case "ppam": return "application/vnd.ms-powerpoint.addin.macroEnabled.12";
case "pptm": return "application/vnd.ms-powerpoint.presentation.macroEnabled.12";
case "potm": return "application/vnd.ms-powerpoint.template.macroEnabled.12";
case "ppsm": return "application/vnd.ms-powerpoint.slideshow.macroEnabled.12";
case "mdb": return "application/vnd.ms-access";
android中用于填充映射列表mime类型的工作方法。
private static void fileMimeTypeMapping() {
MIMETYPE_MAPPING.put("3gp", Collections.list("video/3gpp"));
MIMETYPE_MAPPING.put("7z", Collections.list("application/x-7z-compressed"));
MIMETYPE_MAPPING.put("accdb", Collections.list("application/msaccess"));
MIMETYPE_MAPPING.put("ai", Collections.list("application/illustrator"));
MIMETYPE_MAPPING.put("apk", Collections.list("application/vnd.android.package-archive"));
MIMETYPE_MAPPING.put("arw", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("avi", Collections.list("video/x-msvideo"));
MIMETYPE_MAPPING.put("bash", Collections.list("text/x-shellscript"));
MIMETYPE_MAPPING.put("bat", Collections.list("application/x-msdos-program"));
MIMETYPE_MAPPING.put("blend", Collections.list("application/x-blender"));
MIMETYPE_MAPPING.put("bin", Collections.list("application/x-bin"));
MIMETYPE_MAPPING.put("bmp", Collections.list("image/bmp"));
MIMETYPE_MAPPING.put("bpg", Collections.list("image/bpg"));
MIMETYPE_MAPPING.put("bz2", Collections.list("application/x-bzip2"));
MIMETYPE_MAPPING.put("cb7", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cba", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cbr", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cbt", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cbtc", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cbz", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("cc", Collections.list("text/x-c"));
MIMETYPE_MAPPING.put("cdr", Collections.list("application/coreldraw"));
MIMETYPE_MAPPING.put("class", Collections.list("application/java"));
MIMETYPE_MAPPING.put("cnf", Collections.list("text/plain"));
MIMETYPE_MAPPING.put("conf", Collections.list("text/plain"));
MIMETYPE_MAPPING.put("cpp", Collections.list("text/x-c++src"));
MIMETYPE_MAPPING.put("cr2", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("css", Collections.list("text/css"));
MIMETYPE_MAPPING.put("csv", Collections.list("text/csv"));
MIMETYPE_MAPPING.put("cvbdl", Collections.list("application/x-cbr"));
MIMETYPE_MAPPING.put("c", Collections.list("text/x-c"));
MIMETYPE_MAPPING.put("c++", Collections.list("text/x-c++src"));
MIMETYPE_MAPPING.put("dcr", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("deb", Collections.list("application/x-deb"));
MIMETYPE_MAPPING.put("dng", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("doc", Collections.list("application/msword"));
MIMETYPE_MAPPING.put("docm", Collections.list("application/vnd.ms-word.document.macroEnabled.12"));
MIMETYPE_MAPPING.put("docx", Collections.list("application/vnd.openxmlformats-officedocument.wordprocessingml.document"));
MIMETYPE_MAPPING.put("dot", Collections.list("application/msword"));
MIMETYPE_MAPPING.put("dotx", Collections.list("application/vnd.openxmlformats-officedocument.wordprocessingml.template"));
MIMETYPE_MAPPING.put("dv", Collections.list("video/dv"));
MIMETYPE_MAPPING.put("eot", Collections.list("application/vnd.ms-fontobject"));
MIMETYPE_MAPPING.put("epub", Collections.list("application/epub+zip"));
MIMETYPE_MAPPING.put("eps", Collections.list("application/postscript"));
MIMETYPE_MAPPING.put("erf", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("exe", Collections.list("application/x-ms-dos-executable"));
MIMETYPE_MAPPING.put("flac", Collections.list("audio/flac"));
MIMETYPE_MAPPING.put("flv", Collections.list("video/x-flv"));
MIMETYPE_MAPPING.put("gif", Collections.list("image/gif"));
MIMETYPE_MAPPING.put("gpx", Collections.list("application/gpx+xml"));
MIMETYPE_MAPPING.put("gz", Collections.list("application/gzip"));
MIMETYPE_MAPPING.put("gzip", Collections.list("application/gzip"));
MIMETYPE_MAPPING.put("h", Collections.list("text/x-h"));
MIMETYPE_MAPPING.put("heic", Collections.list("image/heic"));
MIMETYPE_MAPPING.put("heif", Collections.list("image/heif"));
MIMETYPE_MAPPING.put("hh", Collections.list("text/x-h"));
MIMETYPE_MAPPING.put("hpp", Collections.list("text/x-h"));
MIMETYPE_MAPPING.put("htaccess", Collections.list("text/plain"));
MIMETYPE_MAPPING.put("ical", Collections.list("text/calendar"));
MIMETYPE_MAPPING.put("ics", Collections.list("text/calendar"));
MIMETYPE_MAPPING.put("iiq", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("impress", Collections.list("text/impress"));
MIMETYPE_MAPPING.put("java", Collections.list("text/x-java-source"));
MIMETYPE_MAPPING.put("jp2", Collections.list("image/jp2"));
MIMETYPE_MAPPING.put("jpeg", Collections.list("image/jpeg"));
MIMETYPE_MAPPING.put("jpg", Collections.list("image/jpeg"));
MIMETYPE_MAPPING.put("jps", Collections.list("image/jpeg"));
MIMETYPE_MAPPING.put("k25", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("kdc", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("key", Collections.list("application/x-iwork-keynote-sffkey"));
MIMETYPE_MAPPING.put("keynote", Collections.list("application/x-iwork-keynote-sffkey"));
MIMETYPE_MAPPING.put("kml", Collections.list("application/vnd.google-earth.kml+xml"));
MIMETYPE_MAPPING.put("kmz", Collections.list("application/vnd.google-earth.kmz"));
MIMETYPE_MAPPING.put("kra", Collections.list("application/x-krita"));
MIMETYPE_MAPPING.put("ldif", Collections.list("text/x-ldif"));
MIMETYPE_MAPPING.put("love", Collections.list("application/x-love-game"));
MIMETYPE_MAPPING.put("lwp", Collections.list("application/vnd.lotus-wordpro"));
MIMETYPE_MAPPING.put("m2t", Collections.list("video/mp2t"));
MIMETYPE_MAPPING.put("m3u", Collections.list("audio/mpegurl"));
MIMETYPE_MAPPING.put("m3u8", Collections.list("audio/mpegurl"));
MIMETYPE_MAPPING.put("m4a", Collections.list("audio/mp4"));
MIMETYPE_MAPPING.put("m4b", Collections.list("audio/m4b"));
MIMETYPE_MAPPING.put("m4v", Collections.list("video/mp4"));
MIMETYPE_MAPPING.put("markdown", Collections.list(MIMETYPE_TEXT_MARKDOWN));
MIMETYPE_MAPPING.put("mdown", Collections.list(MIMETYPE_TEXT_MARKDOWN));
MIMETYPE_MAPPING.put("md", Collections.list(MIMETYPE_TEXT_MARKDOWN));
MIMETYPE_MAPPING.put("mdb", Collections.list("application/msaccess"));
MIMETYPE_MAPPING.put("mdwn", Collections.list(MIMETYPE_TEXT_MARKDOWN));
MIMETYPE_MAPPING.put("mkd", Collections.list(MIMETYPE_TEXT_MARKDOWN));
MIMETYPE_MAPPING.put("mef", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("mkv", Collections.list("video/x-matroska"));
MIMETYPE_MAPPING.put("mobi", Collections.list("application/x-mobipocket-ebook"));
MIMETYPE_MAPPING.put("mov", Collections.list("video/quicktime"));
MIMETYPE_MAPPING.put("mp3", Collections.list("audio/mpeg"));
MIMETYPE_MAPPING.put("mp4", Collections.list("video/mp4"));
MIMETYPE_MAPPING.put("mpeg", Collections.list("video/mpeg"));
MIMETYPE_MAPPING.put("mpg", Collections.list("video/mpeg"));
MIMETYPE_MAPPING.put("mpo", Collections.list("image/jpeg"));
MIMETYPE_MAPPING.put("msi", Collections.list("application/x-msi"));
MIMETYPE_MAPPING.put("mts", Collections.list("video/MP2T"));
MIMETYPE_MAPPING.put("mt2s", Collections.list("video/MP2T"));
MIMETYPE_MAPPING.put("nef", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("numbers", Collections.list("application/x-iwork-numbers-sffnumbers"));
MIMETYPE_MAPPING.put("odf", Collections.list("application/vnd.oasis.opendocument.formula"));
MIMETYPE_MAPPING.put("odg", Collections.list("application/vnd.oasis.opendocument.graphics"));
MIMETYPE_MAPPING.put("odp", Collections.list("application/vnd.oasis.opendocument.presentation"));
MIMETYPE_MAPPING.put("ods", Collections.list("application/vnd.oasis.opendocument.spreadsheet"));
MIMETYPE_MAPPING.put("odt", Collections.list("application/vnd.oasis.opendocument.text"));
MIMETYPE_MAPPING.put("oga", Collections.list("audio/ogg"));
MIMETYPE_MAPPING.put("ogg", Collections.list("audio/ogg"));
MIMETYPE_MAPPING.put("ogv", Collections.list("video/ogg"));
MIMETYPE_MAPPING.put("one", Collections.list("application/msonenote"));
MIMETYPE_MAPPING.put("opus", Collections.list("audio/ogg"));
MIMETYPE_MAPPING.put("orf", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("otf", Collections.list("application/font-sfnt"));
MIMETYPE_MAPPING.put("pages", Collections.list("application/x-iwork-pages-sffpages"));
MIMETYPE_MAPPING.put("pdf", Collections.list("application/pdf"));
MIMETYPE_MAPPING.put("pfb", Collections.list("application/x-font"));
MIMETYPE_MAPPING.put("pef", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("php", Collections.list("application/x-php"));
MIMETYPE_MAPPING.put("pl", Collections.list("application/x-perl"));
MIMETYPE_MAPPING.put("pls", Collections.list("audio/x-scpls"));
MIMETYPE_MAPPING.put("png", Collections.list("image/png"));
MIMETYPE_MAPPING.put("pot", Collections.list("application/vnd.ms-powerpoint"));
MIMETYPE_MAPPING.put("potm", Collections.list("application/vnd.ms-powerpoint.template.macroEnabled.12"));
MIMETYPE_MAPPING.put("potx", Collections.list("application/vnd.openxmlformats-officedocument.presentationml.template"));
MIMETYPE_MAPPING.put("ppa", Collections.list("application/vnd.ms-powerpoint"));
MIMETYPE_MAPPING.put("ppam", Collections.list("application/vnd.ms-powerpoint.addin.macroEnabled.12"));
MIMETYPE_MAPPING.put("pps", Collections.list("application/vnd.ms-powerpoint"));
MIMETYPE_MAPPING.put("ppsm", Collections.list("application/vnd.ms-powerpoint.slideshow.macroEnabled.12"));
MIMETYPE_MAPPING.put("ppsx", Collections.list("application/vnd.openxmlformats-officedocument.presentationml.slideshow"));
MIMETYPE_MAPPING.put("ppt", Collections.list("application/vnd.ms-powerpoint"));
MIMETYPE_MAPPING.put("pptm", Collections.list("application/vnd.ms-powerpoint.presentation.macroEnabled.12"));
MIMETYPE_MAPPING.put("pptx", Collections.list("application/vnd.openxmlformats-officedocument.presentationml.presentation"));
MIMETYPE_MAPPING.put("ps", Collections.list("application/postscript"));
MIMETYPE_MAPPING.put("psd", Collections.list("application/x-photoshop"));
MIMETYPE_MAPPING.put("py", Collections.list("text/x-python"));
MIMETYPE_MAPPING.put("raf", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("rar", Collections.list("application/x-rar-compressed"));
MIMETYPE_MAPPING.put("reveal", Collections.list("text/reveal"));
MIMETYPE_MAPPING.put("rss", Collections.list("application/rss+xml"));
MIMETYPE_MAPPING.put("rtf", Collections.list("application/rtf"));
MIMETYPE_MAPPING.put("rw2", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("schema", Collections.list("text/plain"));
MIMETYPE_MAPPING.put("sgf", Collections.list("application/sgf"));
MIMETYPE_MAPPING.put("sh-lib", Collections.list("text/x-shellscript"));
MIMETYPE_MAPPING.put("sh", Collections.list("text/x-shellscript"));
MIMETYPE_MAPPING.put("srf", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("sr2", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("tar", Collections.list("application/x-tar"));
MIMETYPE_MAPPING.put("tar.bz2", Collections.list("application/x-bzip2"));
MIMETYPE_MAPPING.put("tar.gz", Collections.list("application/x-compressed"));
MIMETYPE_MAPPING.put("tbz2", Collections.list("application/x-bzip2"));
MIMETYPE_MAPPING.put("tcx", Collections.list("application/vnd.garmin.tcx+xml"));
MIMETYPE_MAPPING.put("tex", Collections.list("application/x-tex"));
MIMETYPE_MAPPING.put("tgz", Collections.list("application/x-compressed"));
MIMETYPE_MAPPING.put("tiff", Collections.list("image/tiff"));
MIMETYPE_MAPPING.put("tif", Collections.list("image/tiff"));
MIMETYPE_MAPPING.put("ttf", Collections.list("application/font-sfnt"));
MIMETYPE_MAPPING.put("txt", Collections.list("text/plain"));
MIMETYPE_MAPPING.put("vcard", Collections.list("text/vcard"));
MIMETYPE_MAPPING.put("vcf", Collections.list("text/vcard"));
MIMETYPE_MAPPING.put("vob", Collections.list("video/dvd"));
MIMETYPE_MAPPING.put("vsd", Collections.list("application/vnd.visio"));
MIMETYPE_MAPPING.put("vsdm", Collections.list("application/vnd.ms-visio.drawing.macroEnabled.12"));
MIMETYPE_MAPPING.put("vsdx", Collections.list("application/vnd.ms-visio.drawing"));
MIMETYPE_MAPPING.put("vssm", Collections.list("application/vnd.ms-visio.stencil.macroEnabled.12"));
MIMETYPE_MAPPING.put("vssx", Collections.list("application/vnd.ms-visio.stencil"));
MIMETYPE_MAPPING.put("vstm", Collections.list("application/vnd.ms-visio.template.macroEnabled.12"));
MIMETYPE_MAPPING.put("vstx", Collections.list("application/vnd.ms-visio.template"));
MIMETYPE_MAPPING.put("wav", Collections.list("audio/wav"));
MIMETYPE_MAPPING.put("webm", Collections.list("video/webm"));
MIMETYPE_MAPPING.put("woff", Collections.list("application/font-woff"));
MIMETYPE_MAPPING.put("wpd", Collections.list("application/vnd.wordperfect"));
MIMETYPE_MAPPING.put("wmv", Collections.list("video/x-ms-wmv"));
MIMETYPE_MAPPING.put("xcf", Collections.list("application/x-gimp"));
MIMETYPE_MAPPING.put("xla", Collections.list("application/vnd.ms-excel"));
MIMETYPE_MAPPING.put("xlam", Collections.list("application/vnd.ms-excel.addin.macroEnabled.12"));
MIMETYPE_MAPPING.put("xls", Collections.list("application/vnd.ms-excel"));
MIMETYPE_MAPPING.put("xlsb", Collections.list("application/vnd.ms-excel.sheet.binary.macroEnabled.12"));
MIMETYPE_MAPPING.put("xlsm", Collections.list("application/vnd.ms-excel.sheet.macroEnabled.12"));
MIMETYPE_MAPPING.put("xlsx", Collections.list("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
MIMETYPE_MAPPING.put("xlt", Collections.list("application/vnd.ms-excel"));
MIMETYPE_MAPPING.put("xltm", Collections.list("application/vnd.ms-excel.template.macroEnabled.12"));
MIMETYPE_MAPPING.put("xltx", Collections.list("application/vnd.openxmlformats-officedocument.spreadsheetml.template"));
MIMETYPE_MAPPING.put("xrf", Collections.list("image/x-dcraw"));
MIMETYPE_MAPPING.put("yaml", Arrays.asList("application/yaml", "text/plain"));
MIMETYPE_MAPPING.put("yml", Arrays.asList("application/yaml", "text/plain"));
MIMETYPE_MAPPING.put("zip", Collections.list("application/zip"));
MIMETYPE_MAPPING.put("url", Collections.list("application/internet-shortcut"));
MIMETYPE_MAPPING.put("webloc", Collections.list("application/internet-shortcut"));
MIMETYPE_MAPPING.put("js", Arrays.asList("application/javascript", "text/plain"));
MIMETYPE_MAPPING.put("json", Arrays.asList("application/json", "text/plain"));
MIMETYPE_MAPPING.put("fb2", Arrays.asList("application/x-fictionbook+xml", "text/plain"));
MIMETYPE_MAPPING.put("html", Arrays.asList("text/html", "text/plain"));
MIMETYPE_MAPPING.put("htm", Arrays.asList("text/html", "text/plain"));
MIMETYPE_MAPPING.put("m", Arrays.asList("text/x-matlab", "text/plain"));
MIMETYPE_MAPPING.put("svg", Arrays.asList("image/svg+xml", "text/plain"));
MIMETYPE_MAPPING.put("swf", Arrays.asList("application/x-shockwave-flash", "application/octet-stream"));
MIMETYPE_MAPPING.put("xml", Arrays.asList("application/xml", "text/plain"));
}