Home » C# » How to Create MIME Types Custom Class in C#

How to Create MIME Types Custom Class in C#


This post explains, how to create a custom class and methods to get MIME type by file name or extension and vice-versa. MediaTypeNames class is also available that exists in System.Net.Mime namespace but the listed mime types or extensions are very limited. But I have mentioned more than 1300 MIME Types in the mapping list.

Steps to Create Mime Type Custom Class

  • Create a Static class called MimeType (.cs file)
  • give a unique name for the namespace as well.
  • declare a read-only dictionary field that contains the list of all MIME types.
  • Create two public static methods:
    • 1) GetMimeType(): to get MIME type by file name or extension
    • 2) GetExtension(): to get file extension by mime type

Mime Type Class – full C# code

Simply copy & paste the entire code in MimeType.cs file, given below.

code usage & output – example
create-mime-type-custom-class-c-dot-net


Full code

namespace Utility
{
    public static class MimeType
    {
        private const string Dot = ".";
        private static readonly Lazy<IDictionary<string, string>> _mappings = new Lazy<IDictionary<string, string>>
        (() => new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
        {
            #region 
            [".123"] = "application/vnd.lotus-1-2-3",
            [".323"] = "text/h323",
            [".3dml"] = "text/vnd.in3d.3dml",
            [".3ds"] = "image/x-3ds",
            [".3g2"] = "video/3gpp2",
            [".3gp"] = "video/3gpp",
            [".3gp2"] = "video/3gpp2",
            [".3gpp"] = "video/3gpp",
            [".7z"] = "application/x-7z-compressed",
            [".aa"] = "audio/audible",
            [".aab"] = "application/x-authorware-bin",
            [".aac"] = "audio/x-aac",
            [".AAC"] = "audio/aac",
            [".aaf"] = "application/octet-stream",
            [".aam"] = "application/x-authorware-map",
            [".aas"] = "application/x-authorware-seg",
            [".aax"] = "audio/vnd.audible.aax",
            [".abw"] = "application/x-abiword",
            [".ac"] = "application/pkix-attr-cert",
            [".ac3"] = "audio/ac3",
            [".aca"] = "application/octet-stream",
            [".acc"] = "application/vnd.americandynamics.acc",
            [".accda"] = "application/msaccess.addin",
            [".accdb"] = "application/msaccess",
            [".accdc"] = "application/msaccess.cab",
            [".accde"] = "application/msaccess",
            [".accdr"] = "application/msaccess.runtime",
            [".accdt"] = "application/msaccess",
            [".accdw"] = "application/msaccess.webapplication",
            [".accft"] = "application/msaccess.ftemplate",
            [".ace"] = "application/x-ace-compressed",
            [".acu"] = "application/vnd.acucobol",
            [".acutc"] = "application/vnd.acucorp",
            [".acx"] = "application/internet-property-stream",
            [".AddIn"] = "text/xml",
            [".ade"] = "application/msaccess",
            [".adobebridge"] = "application/x-bridge-url",
            [".adp"] = "application/msaccess",
            [".ADT"] = "audio/vnd.dlna.adts",
            [".ADTS"] = "audio/aac",
            [".aep"] = "application/vnd.audiograph",
            [".afm"] = "application/octet-stream",
            [".afp"] = "application/vnd.ibm.modcap",
            [".ahead"] = "application/vnd.ahead.space",
            [".ai"] = "application/postscript",
            [".aif"] = "audio/aiff",
            [".aifc"] = "audio/aiff",
            [".aiff"] = "audio/aiff",
            [".air"] = "application/vnd.adobe.air-application-installer-package+zip",
            [".ait"] = "application/vnd.dvb.ait",
            [".amc"] = "application/mpeg",
            [".ami"] = "application/vnd.amiga.ami",
            [".anx"] = "application/annodex",
            [".apk"] = "application/vnd.android.package-archive",
            [".apng"] = "image/apng",
            [".appcache"] = "text/cache-manifest",
            [".application"] = "application/x-ms-application",
            [".apr"] = "application/vnd.lotus-approach",
            [".arc"] = "application/x-freearc",
            [".art"] = "image/x-jg",
            [".asa"] = "application/xml",
            [".asax"] = "application/xml",
            [".asc"] = "application/pgp-signature",
            [".ascx"] = "application/xml",
            [".asd"] = "application/octet-stream",
            [".asf"] = "video/x-ms-asf",
            [".ashx"] = "application/xml",
            [".asi"] = "application/octet-stream",
            [".asm"] = "text/plain",
            [".asmx"] = "application/xml",
            [".aso"] = "application/vnd.accpac.simply.aso",
            [".aspx"] = "application/xml",
            [".asr"] = "video/x-ms-asf",
            [".asx"] = "video/x-ms-asf",
            [".atc"] = "application/vnd.acucorp",
            [".atom"] = "application/atom+xml",
            [".atomcat"] = "application/atomcat+xml",
            [".atomsvc"] = "application/atomsvc+xml",
            [".atx"] = "application/vnd.antix.game-component",
            [".au"] = "audio/basic",
            [".avci"] = "image/avci",
            [".avcs"] = "image/avcs",
            [".avi"] = "video/x-msvideo",
            [".avif"] = "image/avif",
            [".avifs"] = "image/avif-sequence",
            [".aw"] = "application/applixware",
            [".axa"] = "audio/annodex",
            [".axs"] = "application/olescript",
            [".axv"] = "video/annodex",
            [".azf"] = "application/vnd.airzip.filesecure.azf",
            [".azs"] = "application/vnd.airzip.filesecure.azs",
            [".azw"] = "application/vnd.amazon.ebook",
            [".bas"] = "text/plain",
            [".bat"] = "application/x-msdownload",
            [".bcpio"] = "application/x-bcpio",
            [".bdf"] = "application/x-font-bdf",
            [".bdm"] = "application/vnd.syncml.dm+wbxml",
            [".bed"] = "application/vnd.realvnc.bed",
            [".bh2"] = "application/vnd.fujitsu.oasysprs",
            [".bin"] = "application/octet-stream",
            [".blb"] = "application/x-blorb",
            [".blorb"] = "application/x-blorb",
            [".bmi"] = "application/vnd.bmi",
            [".bmp"] = "image/bmp",
            [".book"] = "application/vnd.framemaker",
            [".box"] = "application/vnd.previewsystems.box",
            [".boz"] = "application/x-bzip2",
            [".bpk"] = "application/octet-stream",
            [".btif"] = "image/prs.btif",
            [".bz"] = "application/x-bzip",
            [".bz2"] = "application/x-bzip2",
            [".c"] = "text/plain",
            [".c11amc"] = "application/vnd.cluetrust.cartomobile-config",
            [".c11amz"] = "application/vnd.cluetrust.cartomobile-config-pkg",
            [".c4d"] = "application/vnd.clonk.c4group",
            [".c4f"] = "application/vnd.clonk.c4group",
            [".c4g"] = "application/vnd.clonk.c4group",
            [".c4p"] = "application/vnd.clonk.c4group",
            [".c4u"] = "application/vnd.clonk.c4group",
            [".cab"] = "application/octet-stream",
            [".caf"] = "audio/x-caf",
            [".calx"] = "application/vnd.ms-office.calx",
            [".cap"] = "application/vnd.tcpdump.pcap",
            [".car"] = "application/vnd.curl.car",
            [".cat"] = "application/vnd.ms-pki.seccat",
            [".cb7"] = "application/x-cbr",
            [".cba"] = "application/x-cbr",
            [".cbr"] = "application/x-cbr",
            [".cbt"] = "application/x-cbr",
            [".cbz"] = "application/x-cbr",
            [".cc"] = "text/plain",
            [".cct"] = "application/x-director",
            [".ccxml"] = "application/ccxml+xml",
            [".cd"] = "text/plain",
            [".cdbcmsg"] = "application/vnd.contact.cmsg",
            [".cdda"] = "audio/aiff",
            [".cdf"] = "application/x-cdf",
            [".cdkey"] = "application/vnd.mediastation.cdkey",
            [".cdmia"] = "application/cdmi-capability",
            [".cdmic"] = "application/cdmi-container",
            [".cdmid"] = "application/cdmi-domain",
            [".cdmio"] = "application/cdmi-object",
            [".cdmiq"] = "application/cdmi-queue",
            [".cdx"] = "chemical/x-cdx",
            [".cdxml"] = "application/vnd.chemdraw+xml",
            [".cdy"] = "application/vnd.cinderella",
            [".cer"] = "application/x-x509-ca-cert",
            [".cfg"] = "text/plain",
            [".cfs"] = "application/x-cfs-compressed",
            [".cgm"] = "image/cgm",
            [".chat"] = "application/x-chat",
            [".chm"] = "application/octet-stream",
            [".chrt"] = "application/vnd.kde.kchart",
            [".cif"] = "chemical/x-cif",
            [".cii"] = "application/vnd.anser-web-certificate-issue-initiation",
            [".cil"] = "application/vnd.ms-artgalry",
            [".cla"] = "application/vnd.claymore",
            [".class"] = "application/x-java-applet",
            [".clkk"] = "application/vnd.crick.clicker.keyboard",
            [".clkp"] = "application/vnd.crick.clicker.palette",
            [".clkt"] = "application/vnd.crick.clicker.template",
            [".clkw"] = "application/vnd.crick.clicker.wordbank",
            [".clkx"] = "application/vnd.crick.clicker",
            [".clp"] = "application/x-msclip",
            [".cmc"] = "application/vnd.cosmocaller",
            [".cmd"] = "text/plain",
            [".cmdf"] = "chemical/x-cmdf",
            [".cml"] = "chemical/x-cml",
            [".cmp"] = "application/vnd.yellowriver-custom-menu",
            [".cmx"] = "image/x-cmx",
            [".cnf"] = "text/plain",
            [".cod"] = "image/cis-cod",
            [".com"] = "application/x-msdownload",
            [".conf"] = "text/plain",
            [".config"] = "application/xml",
            [".contact"] = "text/x-ms-contact",
            [".coverage"] = "application/xml",
            [".cpio"] = "application/x-cpio",
            [".cpp"] = "text/plain",
            [".cpt"] = "application/mac-compactpro",
            [".crd"] = "application/x-mscardfile",
            [".crl"] = "application/pkix-crl",
            [".crt"] = "application/x-x509-ca-cert",
            [".cryptonote"] = "application/vnd.rig.cryptonote",
            [".cs"] = "text/plain",
            [".csdproj"] = "text/plain",
            [".csh"] = "application/x-csh",
            [".csml"] = "chemical/x-csml",
            [".csp"] = "application/vnd.commonspace",
            [".csproj"] = "text/plain",
            [".css"] = "text/css",
            [".cst"] = "application/x-director",
            [".csv"] = "text/csv",
            [".cu"] = "application/cu-seeme",
            [".cur"] = "application/octet-stream",
            [".curl"] = "text/vnd.curl",
            [".cww"] = "application/prs.cww",
            [".cxt"] = "application/x-director",
            [".cxx"] = "text/plain",
            [".czx"] = "application/x-czx",
            [".dae"] = "model/vnd.collada+xml",
            [".daf"] = "application/vnd.mobius.daf",
            [".dart"] = "application/vnd.dart",
            [".dat"] = "application/octet-stream",
            [".dataless"] = "application/vnd.fdsn.seed",
            [".datasource"] = "application/xml",
            [".davmount"] = "application/davmount+xml",
            [".dbk"] = "application/docbook+xml",
            [".dbproj"] = "text/plain",
            [".dcr"] = "application/x-director",
            [".dcurl"] = "text/vnd.curl.dcurl",
            [".dd2"] = "application/vnd.oma.dd2+xml",
            [".ddd"] = "application/vnd.fujixerox.ddd",
            [".deb"] = "application/x-debian-package",
            [".def"] = "text/plain",
            [".deploy"] = "application/octet-stream",
            [".der"] = "application/x-x509-ca-cert",
            [".dfac"] = "application/vnd.dreamfactory",
            [".dgc"] = "application/x-dgc-compressed",
            [".dgml"] = "application/xml",
            [".dib"] = "image/bmp",
            [".dic"] = "text/x-c",
            [".dif"] = "video/x-dv",
            [".dir"] = "application/x-director",
            [".dis"] = "application/vnd.mobius.dis",
            [".disco"] = "text/xml",
            [".dist"] = "application/octet-stream",
            [".distz"] = "application/octet-stream",
            [".divx"] = "video/divx",
            [".djv"] = "image/vnd.djvu",
            [".djvu"] = "image/vnd.djvu",
            [".dll"] = "application/x-msdownload",
            [".dll.config"] = "text/xml",
            [".dlm"] = "text/dlm",
            [".dmg"] = "application/x-apple-diskimage",
            [".dmp"] = "application/vnd.tcpdump.pcap",
            [".dms"] = "application/octet-stream",
            [".dna"] = "application/vnd.dna",
            [".doc"] = "application/msword",
            [".docm"] = "application/vnd.ms-word.document.macroEnabled.12",
            [".docx"] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
            [".dot"] = "application/msword",
            [".dotm"] = "application/vnd.ms-word.template.macroEnabled.12",
            [".dotx"] = "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
            [".dp"] = "application/vnd.osgi.dp",
            [".dpg"] = "application/vnd.dpgraph",
            [".dra"] = "audio/vnd.dra",
            [".dsc"] = "text/prs.lines.tag",
            [".dsp"] = "application/octet-stream",
            [".dssc"] = "application/dssc+der",
            [".dsw"] = "text/plain",
            [".dtb"] = "application/x-dtbook+xml",
            [".dtd"] = "text/xml",
            [".dts"] = "audio/vnd.dts",
            [".dtsConfig"] = "text/xml",
            [".dtshd"] = "audio/vnd.dts.hd",
            [".dump"] = "application/octet-stream",
            [".dv"] = "video/x-dv",
            [".dvb"] = "video/vnd.dvb.file",
            [".dvi"] = "application/x-dvi",
            [".dwf"] = "drawing/x-dwf",
            [".dwg"] = "application/acad",
            [".dwp"] = "application/octet-stream",
            [".dxf"] = "application/x-dxf",
            [".dxp"] = "application/vnd.spotfire.dxp",
            [".dxr"] = "application/x-director",
            [".ecelp4800"] = "audio/vnd.nuera.ecelp4800",
            [".ecelp7470"] = "audio/vnd.nuera.ecelp7470",
            [".ecelp9600"] = "audio/vnd.nuera.ecelp9600",
            [".ecma"] = "application/ecmascript",
            [".edm"] = "application/vnd.novadigm.edm",
            [".edx"] = "application/vnd.novadigm.edx",
            [".efif"] = "application/vnd.picsel",
            [".ei6"] = "application/vnd.pg.osasli",
            [".elc"] = "application/octet-stream",
            [".emf"] = "image/emf",
            [".eml"] = "message/rfc822",
            [".emma"] = "application/emma+xml",
            [".emz"] = "application/octet-stream",
            [".eol"] = "audio/vnd.digital-winds",
            [".eot"] = "application/vnd.ms-fontobject",
            [".eps"] = "application/postscript",
            [".epub"] = "application/epub+zip",
            [".es"] = "application/ecmascript",
            [".es3"] = "application/vnd.eszigno3+xml",
            [".esa"] = "application/vnd.osgi.subsystem",
            [".esf"] = "application/vnd.epson.esf",
            [".et3"] = "application/vnd.eszigno3+xml",
            [".etl"] = "application/etl",
            [".etx"] = "text/x-setext",
            [".eva"] = "application/x-eva",
            [".evy"] = "application/envoy",
            [".exe"] = "application/vnd.microsoft.portable-executable",
            [".exe.config"] = "text/xml",
            [".exi"] = "application/exi",
            [".ext"] = "application/vnd.novadigm.ext",
            [".ez"] = "application/andrew-inset",
            [".ez2"] = "application/vnd.ezpix-album",
            [".ez3"] = "application/vnd.ezpix-package",
            [".f"] = "text/x-fortran",
            [".f4v"] = "video/mp4",
            [".f77"] = "text/x-fortran",
            [".f90"] = "text/x-fortran",
            [".fbs"] = "image/vnd.fastbidsheet",
            [".fcdt"] = "application/vnd.adobe.formscentral.fcdt",
            [".fcs"] = "application/vnd.isac.fcs",
            [".fdf"] = "application/vnd.fdf",
            [".fe_launch"] = "application/vnd.denovo.fcselayout-link",
            [".fg5"] = "application/vnd.fujitsu.oasysgp",
            [".fgd"] = "application/x-director",
            [".fh"] = "image/x-freehand",
            [".fh4"] = "image/x-freehand",
            [".fh5"] = "image/x-freehand",
            [".fh7"] = "image/x-freehand",
            [".fhc"] = "image/x-freehand",
            [".fif"] = "application/fractals",
            [".fig"] = "application/x-xfig",
            [".filters"] = "application/xml",
            [".fla"] = "application/octet-stream",
            [".flac"] = "audio/flac",
            [".fli"] = "video/x-fli",
            [".flo"] = "application/vnd.micrografx.flo",
            [".flr"] = "x-world/x-vrml",
            [".flv"] = "video/x-flv",
            [".flw"] = "application/vnd.kde.kivio",
            [".flx"] = "text/vnd.fmi.flexstor",
            [".fly"] = "text/vnd.fly",
            [".fm"] = "application/vnd.framemaker",
            [".fnc"] = "application/vnd.frogans.fnc",
            [".for"] = "text/x-fortran",
            [".fpx"] = "image/vnd.fpx",
            [".frame"] = "application/vnd.framemaker",
            [".fsc"] = "application/vnd.fsc.weblaunch",
            [".fsscript"] = "application/fsharp-script",
            [".fst"] = "image/vnd.fst",
            [".fsx"] = "application/fsharp-script",
            [".ftc"] = "application/vnd.fluxtime.clip",
            [".fti"] = "application/vnd.anser-web-funds-transfer-initiation",
            [".fvt"] = "video/vnd.fvt",
            [".fxp"] = "application/vnd.adobe.fxp",
            [".fxpl"] = "application/vnd.adobe.fxp",
            [".fzs"] = "application/vnd.fuzzysheet",
            [".g2w"] = "application/vnd.geoplan",
            [".g3"] = "image/g3fax",
            [".g3w"] = "application/vnd.geospace",
            [".gac"] = "application/vnd.groove-account",
            [".gam"] = "application/x-tads",
            [".gbr"] = "application/rpki-ghostbusters",
            [".gca"] = "application/x-gca-compressed",
            [".gdl"] = "model/vnd.gdl",
            [".generictest"] = "application/xml",
            [".geo"] = "application/vnd.dynageo",
            [".geojson"] = "application/geo+json",
            [".gex"] = "application/vnd.geometry-explorer",
            [".ggb"] = "application/vnd.geogebra.file",
            [".ggt"] = "application/vnd.geogebra.tool",
            [".ghf"] = "application/vnd.groove-help",
            [".gif"] = "image/gif",
            [".gim"] = "application/vnd.groove-identity-message",
            [".gml"] = "application/gml+xml",
            [".gmx"] = "application/vnd.gmx",
            [".gnumeric"] = "application/x-gnumeric",
            [".gph"] = "application/vnd.flographit",
            [".gpx"] = "application/gpx+xml",
            [".gqf"] = "application/vnd.grafeq",
            [".gqs"] = "application/vnd.grafeq",
            [".gram"] = "application/srgs",
            [".gramps"] = "application/x-gramps-xml",
            [".gre"] = "application/vnd.geometry-explorer",
            [".group"] = "text/x-ms-group",
            [".grv"] = "application/vnd.groove-injector",
            [".grxml"] = "application/srgs+xml",
            [".gsf"] = "application/x-font-ghostscript",
            [".gsm"] = "audio/x-gsm",
            [".gtar"] = "application/x-gtar",
            [".gtm"] = "application/vnd.groove-tool-message",
            [".gtw"] = "model/vnd.gtw",
            [".gv"] = "text/vnd.graphviz",
            [".gxf"] = "application/gxf",
            [".gxt"] = "application/vnd.geonext",
            [".gz"] = "application/x-gzip",
            [".h"] = "text/plain",
            [".h261"] = "video/h261",
            [".h263"] = "video/h263",
            [".h264"] = "video/h264",
            [".hal"] = "application/vnd.hal+xml",
            [".hbci"] = "application/vnd.hbci",
            [".hdf"] = "application/x-hdf",
            [".hdml"] = "text/x-hdml",
            [".heic"] = "image/heic",
            [".heics"] = "image/heic-sequence",
            [".heif"] = "image/heif",
            [".heifs"] = "image/heif-sequence",
            [".hh"] = "text/x-c",
            [".hhc"] = "application/x-oleobject",
            [".hhk"] = "application/octet-stream",
            [".hhp"] = "application/octet-stream",
            [".hlp"] = "application/winhlp",
            [".hpgl"] = "application/vnd.hp-hpgl",
            [".hpid"] = "application/vnd.hp-hpid",
            [".hpp"] = "text/plain",
            [".hps"] = "application/vnd.hp-hps",
            [".hqx"] = "application/mac-binhex40",
            [".hta"] = "application/hta",
            [".htc"] = "text/x-component",
            [".htke"] = "application/vnd.kenameaapp",
            [".htm"] = "text/html",
            [".html"] = "text/html",
            [".htt"] = "text/webviewhtml",
            [".hvd"] = "application/vnd.yamaha.hv-dic",
            [".hvp"] = "application/vnd.yamaha.hv-voice",
            [".hvs"] = "application/vnd.yamaha.hv-script",
            [".hxa"] = "application/xml",
            [".hxc"] = "application/xml",
            [".hxd"] = "application/octet-stream",
            [".hxe"] = "application/xml",
            [".hxf"] = "application/xml",
            [".hxh"] = "application/octet-stream",
            [".hxi"] = "application/octet-stream",
            [".hxk"] = "application/xml",
            [".hxq"] = "application/octet-stream",
            [".hxr"] = "application/octet-stream",
            [".hxs"] = "application/octet-stream",
            [".hxt"] = "text/html",
            [".hxv"] = "application/xml",
            [".hxw"] = "application/octet-stream",
            [".hxx"] = "text/plain",
            [".i"] = "text/plain",
            [".i2g"] = "application/vnd.intergeo",
            [".ical"] = "text/calendar",
            [".icalendar"] = "text/calendar",
            [".icc"] = "application/vnd.iccprofile",
            [".ice"] = "x-conference/x-cooltalk",
            [".icm"] = "application/vnd.iccprofile",
            [".ico"] = "image/x-icon",
            [".ics"] = "text/calendar",
            [".idl"] = "text/plain",
            [".ief"] = "image/ief",
            [".ifb"] = "text/calendar",
            [".ifm"] = "application/vnd.shana.informed.formdata",
            [".iges"] = "model/iges",
            [".igl"] = "application/vnd.igloader",
            [".igm"] = "application/vnd.insors.igm",
            [".igs"] = "model/iges",
            [".igx"] = "application/vnd.micrografx.igx",
            [".iif"] = "application/vnd.shana.informed.interchange",
            [".iii"] = "application/x-iphone",
            [".imp"] = "application/vnd.accpac.simply.imp",
            [".ims"] = "application/vnd.ms-ims",
            [".in"] = "text/plain",
            [".inc"] = "text/plain",
            [".inf"] = "application/octet-stream",
            [".ini"] = "text/plain",
            [".ink"] = "application/inkml+xml",
            [".inkml"] = "application/inkml+xml",
            [".inl"] = "text/plain",
            [".ins"] = "application/x-internet-signup",
            [".install"] = "application/x-install-instructions",
            [".iota"] = "application/vnd.astraea-software.iota",
            [".ipa"] = "application/x-itunes-ipa",
            [".ipfix"] = "application/ipfix",
            [".ipg"] = "application/x-itunes-ipg",
            [".ipk"] = "application/vnd.shana.informed.package",
            [".ipproj"] = "text/plain",
            [".ipsw"] = "application/x-itunes-ipsw",
            [".iqy"] = "text/x-ms-iqy",
            [".irm"] = "application/vnd.ibm.rights-management",
            [".irp"] = "application/vnd.irepository.package+xml",
            [".isma"] = "application/octet-stream",
            [".ismv"] = "application/octet-stream",
            [".iso"] = "application/x-iso9660-image",
            [".isp"] = "application/x-internet-signup",
            [".ite"] = "application/x-itunes-ite",
            [".itlp"] = "application/x-itunes-itlp",
            [".itms"] = "application/x-itunes-itms",
            [".itp"] = "application/vnd.shana.informed.formtemplate",
            [".itpc"] = "application/x-itunes-itpc",
            [".IVF"] = "video/x-ivf",
            [".ivp"] = "application/vnd.immervision-ivp",
            [".ivu"] = "application/vnd.immervision-ivu",
            [".jad"] = "text/vnd.sun.j2me.app-descriptor",
            [".jam"] = "application/vnd.jam",
            [".jar"] = "application/java-archive",
            [".java"] = "application/octet-stream",
            [".jck"] = "application/liquidmotion",
            [".jcz"] = "application/liquidmotion",
            [".jfif"] = "image/pjpeg",
            [".jisp"] = "application/vnd.jisp",
            [".jlt"] = "application/vnd.hp-jlyt",
            [".jnlp"] = "application/x-java-jnlp-file",
            [".joda"] = "application/vnd.joost.joda-archive",
            [".jpb"] = "application/octet-stream",
            [".jpe"] = "image/jpeg",
            [".jpeg"] = "image/jpeg",
            [".jpg"] = "image/jpeg",
            [".jpgm"] = "video/jpm",
            [".jpgv"] = "video/jpeg",
            [".jpm"] = "video/jpm",
            [".js"] = "application/javascript",
            [".json"] = "application/json",
            [".jsonml"] = "application/jsonml+json",
            [".jsx"] = "text/jscript",
            [".jsxbin"] = "text/plain",
            [".kar"] = "audio/midi",
            [".karbon"] = "application/vnd.kde.karbon",
            [".key"] = "application/vnd.apple.keynote",
            [".kfo"] = "application/vnd.kde.kformula",
            [".kia"] = "application/vnd.kidspiration",
            [".kml"] = "application/vnd.google-earth.kml+xml",
            [".kmz"] = "application/vnd.google-earth.kmz",
            [".kne"] = "application/vnd.kinar",
            [".knp"] = "application/vnd.kinar",
            [".kon"] = "application/vnd.kde.kontour",
            [".kpr"] = "application/vnd.kde.kpresenter",
            [".kpt"] = "application/vnd.kde.kpresenter",
            [".kpxx"] = "application/vnd.ds-keypoint",
            [".ksp"] = "application/vnd.kde.kspread",
            [".ktr"] = "application/vnd.kahootz",
            [".ktx"] = "image/ktx",
            [".ktz"] = "application/vnd.kahootz",
            [".kwd"] = "application/vnd.kde.kword",
            [".kwt"] = "application/vnd.kde.kword",
            [".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",
            [".les"] = "application/vnd.hhe.lesson-player",
            [".lha"] = "application/x-lzh-compressed",
            [".library-ms"] = "application/windows-library+xml",
            [".link66"] = "application/vnd.route66.link66+xml",
            [".list"] = "text/plain",
            [".list3820"] = "application/vnd.ibm.modcap",
            [".listafp"] = "application/vnd.ibm.modcap",
            [".lit"] = "application/x-ms-reader",
            [".lnk"] = "application/x-ms-shortcut",
            [".loadtest"] = "application/xml",
            [".log"] = "text/plain",
            [".lostxml"] = "application/lost+xml",
            [".lpk"] = "application/octet-stream",
            [".lrf"] = "application/octet-stream",
            [".lrm"] = "application/vnd.ms-lrm",
            [".lsf"] = "video/x-la-asf",
            [".lst"] = "text/plain",
            [".lsx"] = "video/x-la-asf",
            [".ltf"] = "application/vnd.frogans.ltf",
            [".lvp"] = "audio/vnd.lucent.voice",
            [".lwp"] = "application/vnd.lotus-wordpro",
            [".lzh"] = "application/octet-stream",
            [".m13"] = "application/x-msmediaview",
            [".m14"] = "application/x-msmediaview",
            [".m1v"] = "video/mpeg",
            [".m21"] = "application/mp21",
            [".m2a"] = "audio/mpeg",
            [".m2t"] = "video/vnd.dlna.mpeg-tts",
            [".m2ts"] = "video/vnd.dlna.mpeg-tts",
            [".m2v"] = "video/mpeg",
            [".m3a"] = "audio/mpeg",
            [".m3u"] = "audio/x-mpegurl",
            [".m3u8"] = "audio/x-mpegurl",
            [".m4a"] = "audio/m4a",
            [".m4b"] = "audio/m4b",
            [".m4p"] = "audio/m4p",
            [".m4r"] = "audio/x-m4r",
            [".m4u"] = "video/vnd.mpegurl",
            [".m4v"] = "video/x-m4v",
            [".ma"] = "application/mathematica",
            [".mac"] = "image/x-macpaint",
            [".mads"] = "application/mads+xml",
            [".mag"] = "application/vnd.ecowin.chart",
            [".mak"] = "text/plain",
            [".maker"] = "application/vnd.framemaker",
            [".man"] = "application/x-troff-man",
            [".manifest"] = "application/x-ms-manifest",
            [".map"] = "text/plain",
            [".mar"] = "application/octet-stream",
            [".master"] = "application/xml",
            [".mathml"] = "application/mathml+xml",
            [".mb"] = "application/mathematica",
            [".mbk"] = "application/vnd.mobius.mbk",
            [".mbox"] = "application/mbox",
            [".mc1"] = "application/vnd.medcalcdata",
            [".mcd"] = "application/vnd.mcd",
            [".mcurl"] = "text/vnd.curl.mcurl",
            [".mda"] = "application/msaccess",
            [".mdb"] = "application/x-msaccess",
            [".mde"] = "application/msaccess",
            [".mdi"] = "image/vnd.ms-modi",
            [".mdp"] = "application/octet-stream",
            [".me"] = "application/x-troff-me",
            [".mesh"] = "model/mesh",
            [".meta4"] = "application/metalink4+xml",
            [".metalink"] = "application/metalink+xml",
            [".mets"] = "application/mets+xml",
            [".mfm"] = "application/vnd.mfmp",
            [".mfp"] = "application/x-shockwave-flash",
            [".mft"] = "application/rpki-manifest",
            [".mgp"] = "application/vnd.osgeo.mapguide.package",
            [".mgz"] = "application/vnd.proteus.magazine",
            [".mht"] = "message/rfc822",
            [".mhtml"] = "message/rfc822",
            [".mid"] = "audio/mid",
            [".midi"] = "audio/mid",
            [".mie"] = "application/x-mie",
            [".mif"] = "application/vnd.mif",
            [".mime"] = "message/rfc822",
            [".mix"] = "application/octet-stream",
            [".mj2"] = "video/mj2",
            [".mjp2"] = "video/mj2",
            [".mk"] = "text/plain",
            [".mk3d"] = "video/x-matroska-3d",
            [".mka"] = "audio/x-matroska",
            [".mks"] = "video/x-matroska",
            [".mkv"] = "video/x-matroska",
            [".mlp"] = "application/vnd.dolby.mlp",
            [".mmd"] = "application/vnd.chipnuts.karaoke-mmd",
            [".mmf"] = "application/x-smaf",
            [".mmr"] = "image/vnd.fujixerox.edmics-mmr",
            [".mng"] = "video/x-mng",
            [".mno"] = "text/xml",
            [".mny"] = "application/x-msmoney",
            [".mobi"] = "application/x-mobipocket-ebook",
            [".mod"] = "video/mpeg",
            [".mods"] = "application/mods+xml",
            [".mov"] = "video/quicktime",
            [".movie"] = "video/x-sgi-movie",
            [".mp2"] = "video/mpeg",
            [".mp21"] = "application/mp21",
            [".mp2a"] = "audio/mpeg",
            [".mp2v"] = "video/mpeg",
            [".mp3"] = "audio/mpeg",
            [".mp4"] = "video/mp4",
            [".mp4a"] = "audio/mp4",
            [".mp4s"] = "application/mp4",
            [".mp4v"] = "video/mp4",
            [".mpa"] = "video/mpeg",
            [".mpc"] = "application/vnd.mophun.certificate",
            [".mpe"] = "video/mpeg",
            [".mpeg"] = "video/mpeg",
            [".mpf"] = "application/vnd.ms-mediapackage",
            [".mpg"] = "video/mpeg",
            [".mpg4"] = "video/mp4",
            [".mpga"] = "audio/mpeg",
            [".mpkg"] = "application/vnd.apple.installer+xml",
            [".mpm"] = "application/vnd.blueice.multipass",
            [".mpn"] = "application/vnd.mophun.application",
            [".mpp"] = "application/vnd.ms-project",
            [".mpt"] = "application/vnd.ms-project",
            [".mpv2"] = "video/mpeg",
            [".mpy"] = "application/vnd.ibm.minipay",
            [".mqv"] = "video/quicktime",
            [".mqy"] = "application/vnd.mobius.mqy",
            [".mrc"] = "application/marc",
            [".mrcx"] = "application/marcxml+xml",
            [".ms"] = "application/x-troff-ms",
            [".mscml"] = "application/mediaservercontrol+xml",
            [".mseed"] = "application/vnd.fdsn.mseed",
            [".mseq"] = "application/vnd.mseq",
            [".msf"] = "application/vnd.epson.msf",
            [".msg"] = "application/vnd.ms-outlook",
            [".msh"] = "model/mesh",
            [".msi"] = "application/octet-stream",
            [".msl"] = "application/vnd.mobius.msl",
            [".mso"] = "application/octet-stream",
            [".msty"] = "application/vnd.muvee.style",
            [".mts"] = "video/vnd.dlna.mpeg-tts",
            [".mtx"] = "application/xml",
            [".mus"] = "application/vnd.musician",
            [".musicxml"] = "application/vnd.recordare.musicxml+xml",
            [".mvb"] = "application/x-msmediaview",
            [".mvc"] = "application/x-miva-compiled",
            [".mwf"] = "application/vnd.mfer",
            [".mxf"] = "application/mxf",
            [".mxl"] = "application/vnd.recordare.musicxml",
            [".mxml"] = "application/xv+xml",
            [".mxp"] = "application/x-mmxp",
            [".mxs"] = "application/vnd.triscape.mxs",
            [".mxu"] = "video/vnd.mpegurl",
            [".n-gage"] = "application/vnd.nokia.n-gage.symbian.install",
            [".n3"] = "text/n3",
            [".nb"] = "application/mathematica",
            [".nbp"] = "application/vnd.wolfram.player",
            [".nc"] = "application/x-netcdf",
            [".ncx"] = "application/x-dtbncx+xml",
            [".nfo"] = "text/x-nfo",
            [".ngdat"] = "application/vnd.nokia.n-gage.data",
            [".nitf"] = "application/vnd.nitf",
            [".nlu"] = "application/vnd.neurolanguage.nlu",
            [".nml"] = "application/vnd.enliven",
            [".nnd"] = "application/vnd.noblenet-directory",
            [".nns"] = "application/vnd.noblenet-sealer",
            [".nnw"] = "application/vnd.noblenet-web",
            [".npx"] = "image/vnd.net-fpx",
            [".nsc"] = "video/x-ms-asf",
            [".nsf"] = "application/vnd.lotus-notes",
            [".ntf"] = "application/vnd.nitf",
            [".numbers"] = "application/vnd.apple.numbers",
            [".nws"] = "message/rfc822",
            [".nzb"] = "application/x-nzb",
            [".oa2"] = "application/vnd.fujitsu.oasys2",
            [".oa3"] = "application/vnd.fujitsu.oasys3",
            [".oas"] = "application/vnd.fujitsu.oasys",
            [".obd"] = "application/x-msbinder",
            [".obj"] = "application/x-tgif",
            [".ocx"] = "application/octet-stream",
            [".oda"] = "application/oda",
            [".odb"] = "application/vnd.oasis.opendocument.database",
            [".odc"] = "application/vnd.oasis.opendocument.chart",
            [".odf"] = "application/vnd.oasis.opendocument.formula",
            [".odft"] = "application/vnd.oasis.opendocument.formula-template",
            [".odg"] = "application/vnd.oasis.opendocument.graphics",
            [".odh"] = "text/plain",
            [".odi"] = "application/vnd.oasis.opendocument.image",
            [".odl"] = "text/plain",
            [".odm"] = "application/vnd.oasis.opendocument.text-master",
            [".odp"] = "application/vnd.oasis.opendocument.presentation",
            [".ods"] = "application/vnd.oasis.opendocument.spreadsheet",
            [".odt"] = "application/vnd.oasis.opendocument.text",
            [".oga"] = "audio/ogg",
            [".ogg"] = "audio/ogg",
            [".ogv"] = "video/ogg",
            [".ogx"] = "application/ogg",
            [".omdoc"] = "application/omdoc+xml",
            [".one"] = "application/onenote",
            [".onea"] = "application/onenote",
            [".onepkg"] = "application/onenote",
            [".onetmp"] = "application/onenote",
            [".onetoc"] = "application/onenote",
            [".onetoc2"] = "application/onenote",
            [".opf"] = "application/oebps-package+xml",
            [".opml"] = "text/x-opml",
            [".oprc"] = "application/vnd.palm",
            [".opus"] = "audio/ogg",
            [".orderedtest"] = "application/xml",
            [".org"] = "application/vnd.lotus-organizer",
            [".osdx"] = "application/opensearchdescription+xml",
            [".osf"] = "application/vnd.yamaha.openscoreformat",
            [".osfpvg"] = "application/vnd.yamaha.openscoreformat.osfpvg+xml",
            [".otc"] = "application/vnd.oasis.opendocument.chart-template",
            [".otf"] = "application/font-sfnt",
            [".otg"] = "application/vnd.oasis.opendocument.graphics-template",
            [".oth"] = "application/vnd.oasis.opendocument.text-web",
            [".oti"] = "application/vnd.oasis.opendocument.image-template",
            [".otp"] = "application/vnd.oasis.opendocument.presentation-template",
            [".ots"] = "application/vnd.oasis.opendocument.spreadsheet-template",
            [".ott"] = "application/vnd.oasis.opendocument.text-template",
            [".oxps"] = "application/oxps",
            [".oxt"] = "application/vnd.openofficeorg.extension",
            [".p"] = "text/x-pascal",
            [".p10"] = "application/pkcs10",
            [".p12"] = "application/x-pkcs12",
            [".p7b"] = "application/x-pkcs7-certificates",
            [".p7c"] = "application/pkcs7-mime",
            [".p7m"] = "application/pkcs7-mime",
            [".p7r"] = "application/x-pkcs7-certreqresp",
            [".p7s"] = "application/pkcs7-signature",
            [".p8"] = "application/pkcs8",
            [".pages"] = "application/vnd.apple.pages",
            [".pas"] = "text/x-pascal",
            [".paw"] = "application/vnd.pawaafile",
            [".pbd"] = "application/vnd.powerbuilder6",
            [".pbm"] = "image/x-portable-bitmap",
            [".pcap"] = "application/vnd.tcpdump.pcap",
            [".pcast"] = "application/x-podcast",
            [".pcf"] = "application/x-font-pcf",
            [".pcl"] = "application/vnd.hp-pcl",
            [".pclxl"] = "application/vnd.hp-pclxl",
            [".pct"] = "image/pict",
            [".pcurl"] = "application/vnd.curl.pcurl",
            [".pcx"] = "application/octet-stream",
            [".pcz"] = "application/octet-stream",
            [".pdb"] = "application/vnd.palm",
            [".pdf"] = "application/pdf",
            [".pfa"] = "application/x-font-type1",
            [".pfb"] = "application/octet-stream",
            [".pfm"] = "application/octet-stream",
            [".pfr"] = "application/font-tdpfr",
            [".pfx"] = "application/x-pkcs12",
            [".pgm"] = "image/x-portable-graymap",
            [".pgn"] = "application/x-chess-pgn",
            [".pgp"] = "application/pgp-encrypted",
            [".pic"] = "image/pict",
            [".pict"] = "image/pict",
            [".pkg"] = "application/octet-stream",
            [".pkgdef"] = "text/plain",
            [".pkgundef"] = "text/plain",
            [".pki"] = "application/pkixcmp",
            [".pkipath"] = "application/pkix-pkipath",
            [".pko"] = "application/vnd.ms-pki.pko",
            [".plb"] = "application/vnd.3gpp.pic-bw-large",
            [".plc"] = "application/vnd.mobius.plc",
            [".plf"] = "application/vnd.pocketlearn",
            [".pls"] = "audio/scpls",
            [".pma"] = "application/x-perfmon",
            [".pmc"] = "application/x-perfmon",
            [".pml"] = "application/x-perfmon",
            [".pmr"] = "application/x-perfmon",
            [".pmw"] = "application/x-perfmon",
            [".png"] = "image/png",
            [".pnm"] = "image/x-portable-anymap",
            [".pnt"] = "image/x-macpaint",
            [".pntg"] = "image/x-macpaint",
            [".pnz"] = "image/png",
            [".portpkg"] = "application/vnd.macports.portpkg",
            [".pot"] = "application/vnd.ms-powerpoint",
            [".potm"] = "application/vnd.ms-powerpoint.template.macroEnabled.12",
            [".potx"] = "application/vnd.openxmlformats-officedocument.presentationml.template",
            [".ppa"] = "application/vnd.ms-powerpoint",
            [".ppam"] = "application/vnd.ms-powerpoint.addin.macroEnabled.12",
            [".ppd"] = "application/vnd.cups-ppd",
            [".ppm"] = "image/x-portable-pixmap",
            [".pps"] = "application/vnd.ms-powerpoint",
            [".ppsm"] = "application/vnd.ms-powerpoint.slideshow.macroEnabled.12",
            [".ppsx"] = "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
            [".ppt"] = "application/vnd.ms-powerpoint",
            [".pptm"] = "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
            [".pptx"] = "application/vnd.openxmlformats-officedocument.presentationml.presentation",
            [".pqa"] = "application/vnd.palm",
            [".prc"] = "application/x-mobipocket-ebook",
            [".pre"] = "application/vnd.lotus-freelance",
            [".prf"] = "application/pics-rules",
            [".prm"] = "application/octet-stream",
            [".prx"] = "application/octet-stream",
            [".ps"] = "application/postscript",
            [".psb"] = "application/vnd.3gpp.pic-bw-small",
            [".psc1"] = "application/PowerShell",
            [".psd"] = "application/octet-stream",
            [".psess"] = "application/xml",
            [".psf"] = "application/x-font-linux-psf",
            [".pskcxml"] = "application/pskc+xml",
            [".psm"] = "application/octet-stream",
            [".psp"] = "application/octet-stream",
            [".pst"] = "application/vnd.ms-outlook",
            [".ptid"] = "application/vnd.pvi.ptid1",
            [".pub"] = "application/x-mspublisher",
            [".pvb"] = "application/vnd.3gpp.pic-bw-var",
            [".pwn"] = "application/vnd.3m.post-it-notes",
            [".pwz"] = "application/vnd.ms-powerpoint",
            [".pya"] = "audio/vnd.ms-playready.media.pya",
            [".pyv"] = "video/vnd.ms-playready.media.pyv",
            [".qam"] = "application/vnd.epson.quickanime",
            [".qbo"] = "application/vnd.intu.qbo",
            [".qfx"] = "application/vnd.intu.qfx",
            [".qht"] = "text/x-html-insertion",
            [".qhtm"] = "text/x-html-insertion",
            [".qps"] = "application/vnd.publishare-delta-tree",
            [".qt"] = "video/quicktime",
            [".qti"] = "image/x-quicktime",
            [".qtif"] = "image/x-quicktime",
            [".qtl"] = "application/x-quicktimeplayer",
            [".qwd"] = "application/vnd.quark.quarkxpress",
            [".qwt"] = "application/vnd.quark.quarkxpress",
            [".qxb"] = "application/vnd.quark.quarkxpress",
            [".qxd"] = "application/octet-stream",
            [".qxl"] = "application/vnd.quark.quarkxpress",
            [".qxt"] = "application/vnd.quark.quarkxpress",
            [".ra"] = "audio/x-pn-realaudio",
            [".ram"] = "audio/x-pn-realaudio",
            [".rar"] = "application/x-rar-compressed",
            [".ras"] = "image/x-cmu-raster",
            [".rat"] = "application/rat-file",
            [".rc"] = "text/plain",
            [".rc2"] = "text/plain",
            [".rcprofile"] = "application/vnd.ipunplugged.rcprofile",
            [".rct"] = "text/plain",
            [".rdf"] = "application/rdf+xml",
            [".rdlc"] = "application/xml",
            [".rdz"] = "application/vnd.data-vision.rdz",
            [".reg"] = "text/plain",
            [".rep"] = "application/vnd.businessobjects",
            [".res"] = "application/x-dtbresource+xml",
            [".resx"] = "application/xml",
            [".rf"] = "image/vnd.rn-realflash",
            [".rgb"] = "image/x-rgb",
            [".rgs"] = "text/plain",
            [".rif"] = "application/reginfo+xml",
            [".rip"] = "audio/vnd.rip",
            [".ris"] = "application/x-research-info-systems",
            [".rl"] = "application/resource-lists+xml",
            [".rlc"] = "image/vnd.fujixerox.edmics-rlc",
            [".rld"] = "application/resource-lists-diff+xml",
            [".rm"] = "application/vnd.rn-realmedia",
            [".rmi"] = "audio/mid",
            [".rmp"] = "application/vnd.rn-rn_music_package",
            [".rms"] = "application/vnd.jcp.javame.midlet-rms",
            [".rmvb"] = "application/vnd.rn-realmedia-vbr",
            [".rnc"] = "application/relax-ng-compact-syntax",
            [".roa"] = "application/rpki-roa",
            [".roff"] = "application/x-troff",
            [".rp9"] = "application/vnd.cloanto.rp9",
            [".rpm"] = "audio/x-pn-realaudio-plugin",
            [".rpss"] = "application/vnd.nokia.radio-presets",
            [".rpst"] = "application/vnd.nokia.radio-preset",
            [".rq"] = "application/sparql-query",
            [".rqy"] = "text/x-ms-rqy",
            [".rs"] = "application/rls-services+xml",
            [".rsd"] = "application/rsd+xml",
            [".rss"] = "application/rss+xml",
            [".rtf"] = "application/rtf",
            [".rtx"] = "text/richtext",
            [".ruleset"] = "application/xml",
            [".rvt"] = "application/octet-stream",
            [".s"] = "text/plain",
            [".s3m"] = "audio/s3m",
            [".saf"] = "application/vnd.yamaha.smaf-audio",
            [".safariextz"] = "application/x-safari-safariextz",
            [".sbml"] = "application/sbml+xml",
            [".sc"] = "application/vnd.ibm.secure-container",
            [".scd"] = "application/x-msschedule",
            [".scm"] = "application/vnd.lotus-screencam",
            [".scq"] = "application/scvp-cv-request",
            [".scr"] = "text/plain",
            [".scs"] = "application/scvp-cv-response",
            [".sct"] = "text/scriptlet",
            [".scurl"] = "text/vnd.curl.scurl",
            [".sd2"] = "audio/x-sd2",
            [".sda"] = "application/vnd.stardivision.draw",
            [".sdc"] = "application/vnd.stardivision.calc",
            [".sdd"] = "application/vnd.stardivision.impress",
            [".sdkd"] = "application/vnd.solent.sdkm+xml",
            [".sdkm"] = "application/vnd.solent.sdkm+xml",
            [".sdp"] = "application/sdp",
            [".sdw"] = "application/vnd.stardivision.writer",
            [".sea"] = "application/octet-stream",
            [".searchConnector-ms"] = "application/windows-search-connector+xml",
            [".see"] = "application/vnd.seemail",
            [".seed"] = "application/vnd.fdsn.seed",
            [".sema"] = "application/vnd.sema",
            [".semd"] = "application/vnd.semd",
            [".semf"] = "application/vnd.semf",
            [".ser"] = "application/java-serialized-object",
            [".setpay"] = "application/set-payment-initiation",
            [".setreg"] = "application/set-registration-initiation",
            [".settings"] = "application/xml",
            [".sfd-hdstx"] = "application/vnd.hydrostatix.sof-data",
            [".sfs"] = "application/vnd.spotfire.sfs",
            [".sfv"] = "text/x-sfv",
            [".sgi"] = "image/sgi",
            [".sgimb"] = "application/x-sgimb",
            [".sgl"] = "application/vnd.stardivision.writer-global",
            [".sgm"] = "text/sgml",
            [".sgml"] = "text/sgml",
            [".sh"] = "application/x-sh",
            [".shar"] = "application/x-shar",
            [".shf"] = "application/shf+xml",
            [".shtml"] = "text/html",
            [".sid"] = "image/x-mrsid-image",
            [".sig"] = "application/pgp-signature",
            [".sil"] = "audio/silk",
            [".silo"] = "model/mesh",
            [".sis"] = "application/vnd.symbian.install",
            [".sisx"] = "application/vnd.symbian.install",
            [".sit"] = "application/x-stuffit",
            [".sitemap"] = "application/xml",
            [".sitx"] = "application/x-stuffitx",
            [".skd"] = "application/vnd.koan",
            [".skin"] = "application/xml",
            [".skm"] = "application/vnd.koan",
            [".skp"] = "application/x-koan",
            [".skt"] = "application/vnd.koan",
            [".sldm"] = "application/vnd.ms-powerpoint.slide.macroEnabled.12",
            [".sldx"] = "application/vnd.openxmlformats-officedocument.presentationml.slide",
            [".slk"] = "application/vnd.ms-excel",
            [".sln"] = "text/plain",
            [".slt"] = "application/vnd.epson.salt",
            [".slupkg-ms"] = "application/x-ms-license",
            [".sm"] = "application/vnd.stepmania.stepchart",
            [".smd"] = "audio/x-smd",
            [".smf"] = "application/vnd.stardivision.math",
            [".smi"] = "application/octet-stream",
            [".smil"] = "application/smil+xml",
            [".smv"] = "video/x-smv",
            [".smx"] = "audio/x-smd",
            [".smz"] = "audio/x-smd",
            [".smzip"] = "application/vnd.stepmania.package",
            [".snd"] = "audio/basic",
            [".snf"] = "application/x-font-snf",
            [".snippet"] = "application/xml",
            [".snp"] = "application/octet-stream",
            [".so"] = "application/octet-stream",
            [".sol"] = "text/plain",
            [".sor"] = "text/plain",
            [".spc"] = "application/x-pkcs7-certificates",
            [".spf"] = "application/vnd.yamaha.smaf-phrase",
            [".spl"] = "application/futuresplash",
            [".spot"] = "text/vnd.in3d.spot",
            [".spp"] = "application/scvp-vp-response",
            [".spq"] = "application/scvp-vp-request",
            [".spx"] = "audio/ogg",
            [".sql"] = "application/sql",
            [".src"] = "application/x-wais-source",
            [".srf"] = "text/plain",
            [".srt"] = "application/x-subrip",
            [".sru"] = "application/sru+xml",
            [".srx"] = "application/sparql-results+xml",
            [".ssdl"] = "application/ssdl+xml",
            [".sse"] = "application/vnd.kodak-descriptor",
            [".ssf"] = "application/vnd.epson.ssf",
            [".SSISDeploymentManifest"] = "text/xml",
            [".ssm"] = "application/streamingmedia",
            [".ssml"] = "application/ssml+xml",
            [".sst"] = "application/vnd.ms-pki.certstore",
            [".st"] = "application/vnd.sailingtracker.track",
            [".stc"] = "application/vnd.sun.xml.calc.template",
            [".std"] = "application/vnd.sun.xml.draw.template",
            [".step"] = "application/step",
            [".stf"] = "application/vnd.wt.stf",
            [".sti"] = "application/vnd.sun.xml.impress.template",
            [".stk"] = "application/hyperstudio",
            [".stl"] = "application/vnd.ms-pki.stl",
            [".stp"] = "application/step",
            [".str"] = "application/vnd.pg.format",
            [".stw"] = "application/vnd.sun.xml.writer.template",
            [".sub"] = "image/vnd.dvb.subtitle",
            [".sus"] = "application/vnd.sus-calendar",
            [".susp"] = "application/vnd.sus-calendar",
            [".sv4cpio"] = "application/x-sv4cpio",
            [".sv4crc"] = "application/x-sv4crc",
            [".svc"] = "application/xml",
            [".svd"] = "application/vnd.svd",
            [".svg"] = "image/svg+xml",
            [".svgz"] = "image/svg+xml",
            [".swa"] = "application/x-director",
            [".swf"] = "application/x-shockwave-flash",
            [".swi"] = "application/vnd.aristanetworks.swi",
            [".sxc"] = "application/vnd.sun.xml.calc",
            [".sxd"] = "application/vnd.sun.xml.draw",
            [".sxg"] = "application/vnd.sun.xml.writer.global",
            [".sxi"] = "application/vnd.sun.xml.impress",
            [".sxm"] = "application/vnd.sun.xml.math",
            [".sxw"] = "application/vnd.sun.xml.writer",
            [".t"] = "application/x-troff",
            [".t3"] = "application/x-t3vm-image",
            [".taglet"] = "application/vnd.mynfc",
            [".tao"] = "application/vnd.tao.intent-module-archive",
            [".tar"] = "application/x-tar",
            [".tcap"] = "application/vnd.3gpp2.tcap",
            [".tcl"] = "application/x-tcl",
            [".teacher"] = "application/vnd.smart.teacher",
            [".tei"] = "application/tei+xml",
            [".teicorpus"] = "application/tei+xml",
            [".testrunconfig"] = "application/xml",
            [".testsettings"] = "application/xml",
            [".tex"] = "application/x-tex",
            [".texi"] = "application/x-texinfo",
            [".texinfo"] = "application/x-texinfo",
            [".text"] = "text/plain",
            [".tfi"] = "application/thraud+xml",
            [".tfm"] = "application/x-tex-tfm",
            [".tga"] = "image/x-tga",
            [".tgz"] = "application/x-compressed",
            [".thmx"] = "application/vnd.ms-officetheme",
            [".thn"] = "application/octet-stream",
            [".tif"] = "image/tiff",
            [".tiff"] = "image/tiff",
            [".tlh"] = "text/plain",
            [".tli"] = "text/plain",
            [".tmo"] = "application/vnd.tmobile-livetv",
            [".toc"] = "application/octet-stream",
            [".torrent"] = "application/x-bittorrent",
            [".tpl"] = "application/vnd.groove-tool-template",
            [".tpt"] = "application/vnd.trid.tpt",
            [".tr"] = "application/x-troff",
            [".tra"] = "application/vnd.trueapp",
            [".trm"] = "application/x-msterminal",
            [".trx"] = "application/xml",
            [".ts"] = "video/vnd.dlna.mpeg-tts",
            [".tsd"] = "application/timestamped-data",
            [".tsv"] = "text/tab-separated-values",
            [".ttc"] = "font/collection",
            [".ttf"] = "application/font-sfnt",
            [".ttl"] = "text/turtle",
            [".tts"] = "video/vnd.dlna.mpeg-tts",
            [".twd"] = "application/vnd.simtech-mindmapper",
            [".twds"] = "application/vnd.simtech-mindmapper",
            [".txd"] = "application/vnd.genomatix.tuxedo",
            [".txf"] = "application/vnd.mobius.txf",
            [".txt"] = "text/plain",
            [".u32"] = "application/octet-stream",
            [".udeb"] = "application/x-debian-package",
            [".ufd"] = "application/vnd.ufdl",
            [".ufdl"] = "application/vnd.ufdl",
            [".uls"] = "text/iuls",
            [".ulx"] = "application/x-glulx",
            [".umj"] = "application/vnd.umajin",
            [".unityweb"] = "application/vnd.unity",
            [".uoml"] = "application/vnd.uoml+xml",
            [".uri"] = "text/uri-list",
            [".uris"] = "text/uri-list",
            [".urls"] = "text/uri-list",
            [".user"] = "text/plain",
            [".ustar"] = "application/x-ustar",
            [".utz"] = "application/vnd.uiq.theme",
            [".uu"] = "text/x-uuencode",
            [".uva"] = "audio/vnd.dece.audio",
            [".uvd"] = "application/vnd.dece.data",
            [".uvf"] = "application/vnd.dece.data",
            [".uvg"] = "image/vnd.dece.graphic",
            [".uvh"] = "video/vnd.dece.hd",
            [".uvi"] = "image/vnd.dece.graphic",
            [".uvm"] = "video/vnd.dece.mobile",
            [".uvp"] = "video/vnd.dece.pd",
            [".uvs"] = "video/vnd.dece.sd",
            [".uvt"] = "application/vnd.dece.ttml+xml",
            [".uvu"] = "video/vnd.uvvu.mp4",
            [".uvv"] = "video/vnd.dece.video",
            [".uvva"] = "audio/vnd.dece.audio",
            [".uvvd"] = "application/vnd.dece.data",
            [".uvvf"] = "application/vnd.dece.data",
            [".uvvg"] = "image/vnd.dece.graphic",
            [".uvvh"] = "video/vnd.dece.hd",
            [".uvvi"] = "image/vnd.dece.graphic",
            [".uvvm"] = "video/vnd.dece.mobile",
            [".uvvp"] = "video/vnd.dece.pd",
            [".uvvs"] = "video/vnd.dece.sd",
            [".uvvt"] = "application/vnd.dece.ttml+xml",
            [".uvvu"] = "video/vnd.uvvu.mp4",
            [".uvvv"] = "video/vnd.dece.video",
            [".uvvx"] = "application/vnd.dece.unspecified",
            [".uvvz"] = "application/vnd.dece.zip",
            [".uvx"] = "application/vnd.dece.unspecified",
            [".uvz"] = "application/vnd.dece.zip",
            [".vb"] = "text/plain",
            [".vbdproj"] = "text/plain",
            [".vbk"] = "video/mpeg",
            [".vbproj"] = "text/plain",
            [".vbs"] = "text/vbscript",
            [".vcard"] = "text/vcard",
            [".vcd"] = "application/x-cdlink",
            [".vcf"] = "text/x-vcard",
            [".vcg"] = "application/vnd.groove-vcard",
            [".vcproj"] = "application/xml",
            [".vcs"] = "text/plain",
            [".vcx"] = "application/vnd.vcx",
            [".vcxproj"] = "application/xml",
            [".vddproj"] = "text/plain",
            [".vdp"] = "text/plain",
            [".vdproj"] = "text/plain",
            [".vdx"] = "application/vnd.ms-visio.viewer",
            [".vis"] = "application/vnd.visionary",
            [".viv"] = "video/vnd.vivo",
            [".vml"] = "text/xml",
            [".vob"] = "video/x-ms-vob",
            [".vor"] = "application/vnd.stardivision.writer",
            [".vox"] = "application/x-authorware-bin",
            [".vrml"] = "model/vrml",
            [".vscontent"] = "application/xml",
            [".vsct"] = "text/xml",
            [".vsd"] = "application/vnd.visio",
            [".vsf"] = "application/vnd.vsf",
            [".vsi"] = "application/ms-vsi",
            [".vsix"] = "application/vsix",
            [".vsixlangpack"] = "text/xml",
            [".vsixmanifest"] = "text/xml",
            [".vsmdi"] = "application/xml",
            [".vspscc"] = "text/plain",
            [".vss"] = "application/vnd.visio",
            [".vsscc"] = "text/plain",
            [".vssettings"] = "text/xml",
            [".vssscc"] = "text/plain",
            [".vst"] = "application/vnd.visio",
            [".vstemplate"] = "text/xml",
            [".vsto"] = "application/x-ms-vsto",
            [".vsw"] = "application/vnd.visio",
            [".vsx"] = "application/vnd.visio",
            [".vtt"] = "text/vtt",
            [".vtu"] = "model/vnd.vtu",
            [".vtx"] = "application/vnd.visio",
            [".vxml"] = "application/voicexml+xml",
            [".w3d"] = "application/x-director",
            [".wad"] = "application/x-doom",
            [".wasm"] = "application/wasm",
            [".wav"] = "audio/wav",
            [".wave"] = "audio/wav",
            [".wax"] = "audio/x-ms-wax",
            [".wbk"] = "application/msword",
            [".wbmp"] = "image/vnd.wap.wbmp",
            [".wbs"] = "application/vnd.criticaltools.wbs+xml",
            [".wbxml"] = "application/vnd.wap.wbxml",
            [".wcm"] = "application/vnd.ms-works",
            [".wdb"] = "application/vnd.ms-works",
            [".wdp"] = "image/vnd.ms-photo",
            [".weba"] = "audio/webm",
            [".webarchive"] = "application/x-safari-webarchive",
            [".webm"] = "video/webm",
            [".webp"] = "image/webp",
            [".webtest"] = "application/xml",
            [".wg"] = "application/vnd.pmi.widget",
            [".wgt"] = "application/widget",
            [".wiq"] = "application/xml",
            [".wiz"] = "application/msword",
            [".wks"] = "application/vnd.ms-works",
            [".WLMP"] = "application/wlmoviemaker",
            [".wlpginstall"] = "application/x-wlpg-detect",
            [".wlpginstall3"] = "application/x-wlpg3-detect",
            [".wm"] = "video/x-ms-wm",
            [".wma"] = "audio/x-ms-wma",
            [".wmd"] = "application/x-ms-wmd",
            [".wmf"] = "application/x-msmetafile",
            [".wml"] = "text/vnd.wap.wml",
            [".wmlc"] = "application/vnd.wap.wmlc",
            [".wmls"] = "text/vnd.wap.wmlscript",
            [".wmlsc"] = "application/vnd.wap.wmlscriptc",
            [".wmp"] = "video/x-ms-wmp",
            [".wmv"] = "video/x-ms-wmv",
            [".wmx"] = "video/x-ms-wmx",
            [".wmz"] = "application/x-ms-wmz",
            [".woff"] = "application/font-woff",
            [".woff2"] = "application/font-woff2",
            [".wpd"] = "application/vnd.wordperfect",
            [".wpl"] = "application/vnd.ms-wpl",
            [".wps"] = "application/vnd.ms-works",
            [".wqd"] = "application/vnd.wqd",
            [".wri"] = "application/x-mswrite",
            [".wrl"] = "x-world/x-vrml",
            [".wrz"] = "x-world/x-vrml",
            [".wsc"] = "text/scriptlet",
            [".wsdl"] = "text/xml",
            [".wspolicy"] = "application/wspolicy+xml",
            [".wtb"] = "application/vnd.webturbo",
            [".wvx"] = "video/x-ms-wvx",
            [".x"] = "application/directx",
            [".x32"] = "application/x-authorware-bin",
            [".x3d"] = "model/x3d+xml",
            [".x3db"] = "model/x3d+binary",
            [".x3dbz"] = "model/x3d+binary",
            [".x3dv"] = "model/x3d+vrml",
            [".x3dvz"] = "model/x3d+vrml",
            [".x3dz"] = "model/x3d+xml",
            [".xaf"] = "x-world/x-vrml",
            [".xaml"] = "application/xaml+xml",
            [".xap"] = "application/x-silverlight-app",
            [".xar"] = "application/vnd.xara",
            [".xbap"] = "application/x-ms-xbap",
            [".xbd"] = "application/vnd.fujixerox.docuworks.binder",
            [".xbm"] = "image/x-xbitmap",
            [".xdf"] = "application/xcap-diff+xml",
            [".xdm"] = "application/vnd.syncml.dm+xml",
            [".xdp"] = "application/vnd.adobe.xdp+xml",
            [".xdr"] = "text/plain",
            [".xdssc"] = "application/dssc+xml",
            [".xdw"] = "application/vnd.fujixerox.docuworks",
            [".xenc"] = "application/xenc+xml",
            [".xer"] = "application/patch-ops-error+xml",
            [".xfdf"] = "application/vnd.adobe.xfdf",
            [".xfdl"] = "application/vnd.xfdl",
            [".xht"] = "application/xhtml+xml",
            [".xhtml"] = "application/xhtml+xml",
            [".xhvml"] = "application/xv+xml",
            [".xif"] = "image/vnd.xiff",
            [".xla"] = "application/vnd.ms-excel",
            [".xlam"] = "application/vnd.ms-excel.addin.macroEnabled.12",
            [".xlc"] = "application/vnd.ms-excel",
            [".xld"] = "application/vnd.ms-excel",
            [".xlf"] = "application/x-xliff+xml",
            [".xlk"] = "application/vnd.ms-excel",
            [".xll"] = "application/vnd.ms-excel",
            [".xlm"] = "application/vnd.ms-excel",
            [".xls"] = "application/vnd.ms-excel",
            [".xlsb"] = "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
            [".xlsm"] = "application/vnd.ms-excel.sheet.macroEnabled.12",
            [".xlsx"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            [".xlt"] = "application/vnd.ms-excel",
            [".xltm"] = "application/vnd.ms-excel.template.macroEnabled.12",
            [".xltx"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
            [".xlw"] = "application/vnd.ms-excel",
            [".xm"] = "audio/xm",
            [".xml"] = "text/xml",
            [".xmp"] = "application/octet-stream",
            [".xmta"] = "application/xml",
            [".xo"] = "application/vnd.olpc-sugar",
            [".xof"] = "x-world/x-vrml",
            [".XOML"] = "text/plain",
            [".xop"] = "application/xop+xml",
            [".xpi"] = "application/x-xpinstall",
            [".xpl"] = "application/xproc+xml",
            [".xpm"] = "image/x-xpixmap",
            [".xpr"] = "application/vnd.is-xpr",
            [".xps"] = "application/vnd.ms-xpsdocument",
            [".xpw"] = "application/vnd.intercon.formnet",
            [".xpx"] = "application/vnd.intercon.formnet",
            [".xrm-ms"] = "text/xml",
            [".xsc"] = "application/xml",
            [".xsd"] = "text/xml",
            [".xsf"] = "text/xml",
            [".xsl"] = "text/xml",
            [".xslt"] = "text/xml",
            [".xsm"] = "application/vnd.syncml+xml",
            [".xsn"] = "application/octet-stream",
            [".xspf"] = "application/xspf+xml",
            [".xss"] = "application/xml",
            [".xtp"] = "application/octet-stream",
            [".xul"] = "application/vnd.mozilla.xul+xml",
            [".xvm"] = "application/xv+xml",
            [".xvml"] = "application/xv+xml",
            [".xwd"] = "image/x-xwindowdump",
            [".xyz"] = "chemical/x-xyz",
            [".xz"] = "application/x-xz",
            [".yang"] = "application/yang",
            [".yin"] = "application/yin+xml",
            [".z"] = "application/x-compress",
            [".z1"] = "application/x-zmachine",
            [".z2"] = "application/x-zmachine",
            [".z3"] = "application/x-zmachine",
            [".z4"] = "application/x-zmachine",
            [".z5"] = "application/x-zmachine",
            [".z6"] = "application/x-zmachine",
            [".z7"] = "application/x-zmachine",
            [".z8"] = "application/x-zmachine",
            [".zaz"] = "application/vnd.zzazz.deck+xml",
            [".zip"] = "application/zip",
            [".zir"] = "application/vnd.zul",
            [".zirz"] = "application/vnd.zul",
            [".zmm"] = "application/vnd.handheld-entertainment+xml",
            #endregion
        });


        /// <summary>
        /// Tries to get the type of the MIME from the provided string.
        /// </summary>
        /// <param name="input">The filename or extension.</param>
        /// <param name="mimeType">The variable to store the MIME type.</param>
        /// <returns>The MIME type.</returns>
        /// <exception cref="ArgumentNullException" />
        private static bool TryGetMimeType(string input, out string mimeType)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            if (!input.Contains(Dot))
            {
                input = Dot + input;
            }
            else if (input.Contains(Dot) && !input.StartsWith(Dot))
            {
                var index = input.LastIndexOf(Dot);
                if (index != -1 && input.Length > index + 1)
                {
                    input = input.Substring(index + 1);
                }

                input = Dot + input;
            }

            return _mappings.Value.TryGetValue(input, out mimeType);
        }

        /// <summary>
        /// Gets the type of the MIME from the provided string.
        /// </summary>
        /// <param name="fileName">The filename or extension.
        /// <returns>The MIME type.</returns>
        /// <exception cref="ArgumentNullException">
        public static string GetMimeType(string fileName)
        {
            return TryGetMimeType(fileName, out var result) ? result : string.Empty;
        }

        /// <summary>
        /// Gets the extension from the provided MINE type.
        /// </summary>
        /// <param name="mimeType">Type of the MIME.</param>
        /// <returns>The extension.</returns>
        /// <exception cref="ArgumentNullException"></exception>
        /// <exception cref="ArgumentException"></exception>
        public static string GetExtension(string mimeType)
        {
            if (mimeType == null)
            {
                throw new ArgumentNullException(nameof(mimeType));
            }

            if (mimeType.StartsWith(Dot))
            {
                throw new ArgumentException("Requested mime type is not valid: " + mimeType);
            }

            var ext = _mappings.Value.FirstOrDefault(x => x.Value.Contains(mimeType)).Key;
            if (ext != null)
            {
                return ext;
            }

            return string.Empty;
        }
    }
} 

Reference: iana.org


Leave a Reply

Your email address will not be published. Required fields are marked *