Skip to content

Instantly share code, notes, and snippets.

@twysto
Last active December 16, 2015 16:40
Show Gist options
  • Save twysto/0d61a7fa1f8f50300c9b to your computer and use it in GitHub Desktop.
Save twysto/0d61a7fa1f8f50300c9b to your computer and use it in GitHub Desktop.
<?php
/**
* TODO: Have to make some verifications on a few extensions.
* For instance, xml can be found three times with three differents mime-types.
*/
$mime_types_extensions = array(
// "application/1d-interleaved-parityfec",
// "application/3gpp-ims+xml",
// "application/activemessage",
"application/andrew-inset" => "ez",
// "application/applefile",
"application/atom+xml" => "atom",
"application/atomcat+xml" => "atomcat",
// "application/atomicmail",
"application/atomsvc+xml" => "atomsvc",
"application/auth-policy+xml" => "apxml",
// "application/batch-SMTP",
// "application/beep+xml",
// "application/cals-1840",
"application/ccxml+xml" => "ccxml",
"application/cdmi-capability" => "cdmia",
"application/cdmi-container" => "cdmic",
"application/cdmi-domain" => "cdmid",
"application/cdmi-object" => "cdmio",
"application/cdmi-queue" => "cdmiq",
// "application/cea-2018+xml",
"application/cellml+xml" => array("cellml", "cml"),
// "application/cfw",
// "application/cnrp+xml",
// "application/commonground",
// "application/conference-info+xml",
"application/cpl+xml" => "cpl",
// "application/csta+xml",
// "application/CSTAdata+xml",
// "application/cybercash",
"application/davmount+xml" => "davmount",
// "application/dca-rft",
// "application/dec-dx",
// "application/dialog-info+xml",
"application/dicom" => "dcm",
// "application/dns"",
"application/dskpp+xml" => "xmls",
"application/dssc+der" => "dssc",
"application/dssc+xml" => "xdssc",
"application/dvcs" => "dvc",
// "application/ecmascript",
// "application/EDI-Consent",
// "application/EDI-X12",
// "application/EDIFACT",
"application/emma+xml" => "emma",
// "application/epp+xml",
// "application/eshop",
"application/exi" => "exi",
"application/fastinfoset" => "finf",
// "application/fastsoap",
// "application/fits",
"application/font-tdpfr" => "pfr",
// "application/framework-attributes+xml",
// "application/H224",
"application/hal+xml" => "hal",
// "application/held+xml",
// "application/http",
"application/hyperstudio" => "stk",
// "application/ibe-key-request+xml",
// "application/ibe-pkg-reply+xml",
// "application/ibe-pp-data",
// "application/iges",
// "application/im-iscomposing+xml",
// "application/index",
// "application/index.cmd",
// "application/index.obj",
// "application/index.response",
// "application/index.vnd",
// "application/iotp",
"application/ipfix" => "ipfix",
// "application/ipp",
// "application/isup",
"application/javascript" => "js",
"application/json" => "json",
// "application/kpml-request+xml",
// "application/kpml-response+xml",
"application/lost+xml" => "lostxml",
"application/mac-binhex40" => "hqx",
// "application/macwriteii",
"application/mads+xml" => "mads",
"application/marc" => "mrc",
"application/marcxml+xml" => "mrcx",
"application/mathematica" => array("ma", "mb", "nb"),
// "application/mathml-content+xml",
// "application/mathml-presentation+xml",
"application/mathml+xml" => "mml",
// "application/mbms-associated-procedure-description+xml",
// "application/mbms-deregister+xml",
// "application/mbms-envelope+xml",
// "application/mbms-msk-response+xml",
// "application/mbms-msk+xml",
// "application/mbms-protection-description+xml",
// "application/mbms-reception-report+xml",
// "application/mbms-register-response+xml",
// "application/mbms-register+xml",
// "application/mbms-user-service-description+xml",
"application/mbox" => "mbox",
// "application/media_control+xml",
// "application/mediaservercontrol+xml",
"application/metalink4+xml" => "meta4",
"application/mets+xml" => "mets",
// "application/mikey",
"application/mods+xml" => "mods",
// "application/moss-keys",
// "application/moss-signature",
// "application/mosskey-data",
// "application/mosskey-request",
"application/mp21" => array("m21", "mp21"),
// "application/mp4",
// "application/mpeg4-generic",
// "application/mpeg4-iod",
// "application/mpeg4-iod-xmt",
// "application/msc-ivr+xml",
// "application/msc-mixer+xml",
"application/msword" => "doc",
"application/mxf" => "mxf",
// "application/nasdata",
// "application/news-checkgroups",
// "application/news-groupinfo",
// "application/news-transmission",
// "application/nss",
"application/ocsp-request" => "orq",
"application/ocsp-response" => "ors",
"application/octet-stream" => array("bin", "class", "dll", "exe", "img", "iso", "lha", "lzh", "so"),
"application/oda" => "oda",
"application/oebps-package+xml" => "opf",
"application/ogg" => "ogx",
// "application/parityfec",
// "application/patch-ops-error+xml",
"application/pdf" => "pdf",
// "application/pgp-encrypted",
// "application/pgp-keys",
"application/pgp-signature" => "sig",
// "application/pidf-diff+xml",
// "application/pidf+xml",
"application/pkcs10" => "p10",
"application/pkcs7-mime" => array("p7c", "p7m"),
"application/pkcs7-signature" => "p7s",
"application/pkcs8" => "p8",
// "application/pkix-attr-cert",
"application/pkix-cert" => "cer",
"application/pkix-crl" => "crl",
"application/pkix-pkipath" => "pkipath",
// "application/pkixcmp",
"application/pls+xml" => "pls",
// "application/poc-settings+xml",
"application/postscript" => array("ps", "eps", "ai"),
// "application/prs.alvestrand.titrax-sheet",
"application/prs.cww" => array("cw", "cww"),
"application/prs.nprend" => array("rct", "rnd"),
// "application/prs.plucker",
"application/prs.rdf-xml-crypt" => "rdf-crypt",
"application/prs.xsf+xml" => "xsf",
"application/pskc+xml" => "pskcxml",
// "application/qsig",
"application/rdf+xml" => "rdf",
"application/reginfo+xml" => "rif",
"application/relax-ng-compact-syntax" => "rnc",
// "application/remote-printing",
"application/resource-lists-diff+xml" => "rld",
"application/resource-lists+xml" => "rl",
// "application/riscos",
// "application/rlmi+xml",
"application/rls-services+xml" => "rs",
"application/rtf" => "rtf",
// "application/rtx",
// "application/samlassertion+xml",
// "application/samlmetadata+xml",
// "application/sbml+xml",
"application/scvp-cv-request" => "scq",
"application/scvp-cv-response" => "scs",
"application/scvp-vp-request" => "spq",
"application/scvp-vp-response" => "spp",
"application/sdp" => "sdp",
// "application/set-payment",
// "application/set-payment-initiation",
// "application/set-registration",
// "application/set-registration-initiation",
// "application/sgml",
"application/sgml-open-catalog" => "soc",
"application/shf+xml" => "shf",
"application/sieve" => array("siv", "sieve"),
"application/simple-filter+xml" => array("cl", "xml"),
// "application/simple-message-summary",
// "application/simpleSymbolContainer",
// "application/slate",
"application/smil+xml" => array("smi", "smil", "sml"),
// "application/soap+fastinfoset",
// "application/soap+xml",
"application/sparql-query" => "rq",
"application/sparql-results+xml" => "srx",
// "application/spirits-event+xml",
"application/srgs" => "gram",
"application/srgs+xml" => "grxml",
"application/sru+xml" => "sru",
"application/ssml+xml" => "ssml",
"application/tamp-apex-update" => "tau",
"application/tamp-apex-update-confirm" => "auc",
"application/tamp-community-update" => "tcu",
"application/tamp-community-update-confirm" => "cuc",
"application/tamp-error" => "ter",
"application/tamp-sequence-adjust" => "tsa",
"application/tamp-sequence-adjust-confirm" => "sac",
"application/tamp-status-query" => "tsq",
"application/tamp-status-response" => "tsr",
"application/tamp-update" => "tur",
"application/tamp-update-confirm" => "tuc",
"application/tei+xml" => array("odd", "tei", "teiCorpus"),
"application/thraud+xml" => "tfi",
"application/timestamp-query" => "tsq",
"application/timestamp-reply" => "tsr",
"application/timestamped-data" => "tsd",
// "application/tve-trigger",
// "application/ulpfec",
// "application/vemmi",
// "application/vnd.3gpp.bsf+xml",
"application/vnd.3gpp.pic-bw-large" => "plb",
"application/vnd.3gpp.pic-bw-small" => "psb",
"application/vnd.3gpp.pic-bw-var" => "pvb",
"application/vnd.3gpp.sms" => "sms",
// "application/vnd.3gpp2.bcmcsinfo+xml",
"application/vnd.3gpp2.sms" => "sms",
"application/vnd.3gpp2.tcap" => "tcap",
"application/vnd.3M.Post-it-Notes" => "pwn",
"application/vnd.accpac.simply.aso" => "aso",
"application/vnd.accpac.simply.imp" => "imp",
"application/vnd.acucobol" => "acu",
"application/vnd.acucorp" => array("acutc", "atc"),
"application/vnd.adobe.fxp" => array("fxp", "fxpl"),
// "application/vnd.adobe.partial-upload",
"application/vnd.adobe.xdp+xml" => "xdp",
"application/vnd.adobe.xfdf" => "xfdf",
// "application/vnd.aether.imp",
// "application/vnd.ah-barcode",
"application/vnd.ahead.space" => "ahead",
"application/vnd.airzip.filesecure.azf" => "azf",
"application/vnd.airzip.filesecure.azs" => "azs",
"application/vnd.americandynamics.acc" => "acc",
"application/vnd.amiga.ami" => "ami",
// "application/vnd.amundsen.maze+xml",
"application/vnd.anser-web-certificate-issue-initiation" => "cii",
"application/vnd.anser-web-funds-transfer-initiation" => "fti",
// "application/vnd.antix.game-component",
"application/vnd.apple.installer+xml" => array("dist", "distz", "mpkg", "pkg"),
"application/vnd.apple.mpegurl" => "m3u8",
"application/vnd.aristanetworks.swi" => "swi",
"application/vnd.audiograph" => "aep",
"application/vnd.autopackage" => "package",
// "application/vnd.avistar+xml",
"application/vnd.blueice.multipass" => "mpm",
"application/vnd.bluetooth.ep.oob" => "ep",
"application/vnd.bmi" => "bmi",
"application/vnd.businessobjects" => "rep",
// "application/vnd.cab-jscript",
// "application/vnd.canon-cpdl",
// "application/vnd.canon-lips",
"application/vnd.cendio.thinlinc.clientconf" => "tlclient",
"application/vnd.chemdraw+xml" => "cdxml",
"application/vnd.chipnuts.karaoke-mmd" => "mmd",
"application/vnd.cinderella" => "cdy",
// "application/vnd.cirpack.isdn-ext",
"application/vnd.claymore" => "cla",
"application/vnd.cloanto.rp9" => "rp9",
"application/vnd.clonk.c4group" => array("c4d", "c4f", "c4g", "c4p", "c4u"),
"application/vnd.cluetrust.cartomobile-config" => "c11amc",
"application/vnd.cluetrust.cartomobile-config-pkg" => "c11amz",
"application/vnd.commerce-battelle" => array("ic0", "ic1", "ic2", "ic3", "ic4", "ic5", "ic6", "ic7", "ic8", "ica", "icd", "icf"),
"application/vnd.commonspace" => array("csp", "cst"),
"application/vnd.contact.cmsg" => "cdbcmsg",
"application/vnd.cosmocaller" => "cmc",
"application/vnd.crick.clicker" => "clkx",
"application/vnd.crick.clicker.keyboard" => "clkk",
"application/vnd.crick.clicker.palette" => "clkp",
"application/vnd.crick.clicker.template" => "clkt",
"application/vnd.crick.clicker.wordbank" => "clkw",
"application/vnd.criticaltools.wbs+xml" => "wbs",
"application/vnd.ctc-posml" => "pml",
// "application/vnd.ctct.ws+xml",
// "application/vnd.cups-pdf",
// "application/vnd.cups-postscript",
"application/vnd.cups-ppd" => "ppd",
// "application/vnd.cups-raster",
// "application/vnd.cups-raw",
"application/vnd.curl" => "curl",
// "application/vnd.cybank",
"application/vnd.data-vision.rdz" => "rdz",
"application/vnd.dece.data" => array("uvd", "uvf", "uvvd", "uvvf"),
"application/vnd.dece.ttml+xml" => array("uvt", "uvvt"),
"application/vnd.dece.unspecified" => array("uvvx", "uvx"),
"application/vnd.denovo.fcselayout-link" => "fe_launch",
// "application/vnd.dir-bi.plate-dl-nosuffix",
"application/vnd.dna" => "dna",
// "application/vnd.dolby.mobile.1",
// "application/vnd.dolby.mobile.2",
"application/vnd.dpgraph" => array("dpg", "dpgraph", "mwc"),
"application/vnd.dreamfactory" => "dfac",
"application/vnd.dvb.ait" => "ait",
// "application/vnd.dvb.dvbj",
// "application/vnd.dvb.esgcontainer",
// "application/vnd.dvb.ipdcdftnotifaccess",
// "application/vnd.dvb.ipdcesgaccess",
// "application/vnd.dvb.ipdcesgaccess2",
// "application/vnd.dvb.ipdcesgpdd",
// "application/vnd.dvb.ipdcroaming",
// "application/vnd.dvb.iptv.alfec-base",
// "application/vnd.dvb.iptv.alfec-enhancement",
// "application/vnd.dvb.notif-aggregate-root+xml",
// "application/vnd.dvb.notif-container+xml",
// "application/vnd.dvb.notif-generic+xml",
// "application/vnd.dvb.notif-ia-msglist+xml",
// "application/vnd.dvb.notif-ia-registration-request+xml",
// "application/vnd.dvb.notif-ia-registration-response+xml",
// "application/vnd.dvb.notif-init+xml",
// "application/vnd.dvb.pfr",
"application/vnd.dvb.service" => "svc",
// "application/vnd.dxr",
"application/vnd.dynageo" => "geo",
// "application/vnd.easykaraoke.cdgdownload",
// "application/vnd.ecdis-update",
"application/vnd.ecowin.chart" => "mag",
// "application/vnd.ecowin.filerequest",
// "application/vnd.ecowin.fileupdate",
// "application/vnd.ecowin.series",
// "application/vnd.ecowin.seriesrequest",
// "application/vnd.ecowin.seriesupdate",
"application/vnd.enliven" => "nml",
"application/vnd.epson.esf" => "esf",
"application/vnd.epson.msf" => "msf",
"application/vnd.epson.quickanime" => "qam",
"application/vnd.epson.salt" => "slt",
"application/vnd.epson.ssf" => "ssf",
"application/vnd.ericsson.quickcall" => array("qcall", "qca"),
"application/vnd.eszigno3+xml" => array("es3", "et3"),
// "application/vnd.etsi.aoc+xml",
// "application/vnd.etsi.cug+xml",
// "application/vnd.etsi.iptvcommand+xml",
// "application/vnd.etsi.iptvdiscovery+xml",
// "application/vnd.etsi.iptvprofile+xml",
// "application/vnd.etsi.iptvsad-bc+xml",
// "application/vnd.etsi.iptvsad-cod+xml",
// "application/vnd.etsi.iptvsad-npvr+xml",
// "application/vnd.etsi.iptvservice+xml",
// "application/vnd.etsi.iptvsync+xml",
// "application/vnd.etsi.iptvueprofile+xml",
// "application/vnd.etsi.mcid+xml",
// "application/vnd.etsi.overload-control-policy-dataset+xml",
// "application/vnd.etsi.sci+xml",
// "application/vnd.etsi.simservs+xml",
// "application/vnd.etsi.tsl.der",
// "application/vnd.etsi.tsl+xml",
// "application/vnd.eudora.data",
"application/vnd.ezpix-album" => "ez2",
"application/vnd.ezpix-package" => "ez3",
// "application/vnd.f-secure.mobile",
"application/vnd.fdf" => "fdf",
"application/vnd.fdsn.mseed" => array("msd", "mseed"),
"application/vnd.fdsn.seed" => array("dataless", "seed"),
// "application/vnd.ffsns",
// "application/vnd.fints",
"application/vnd.FloGraphIt" => "gph",
"application/vnd.fluxtime.clip" => "ftc",
"application/vnd.font-fontforge-sfd" => "sfd",
"application/vnd.framemaker" => "fm",
"application/vnd.frogans.fnc" => "fnc",
"application/vnd.frogans.ltf" => "ltf",
"application/vnd.fsc.weblaunch" => "fsc",
"application/vnd.fujitsu.oasys" => "oas",
"application/vnd.fujitsu.oasys2" => "oa2",
"application/vnd.fujitsu.oasys3" => "oa3",
"application/vnd.fujitsu.oasysgp" => "fg5",
"application/vnd.fujitsu.oasysprs" => "bh2",
// "application/vnd.fujixerox.ART-EX",
// "application/vnd.fujixerox.ART4",
"application/vnd.fujixerox.ddd" => "ddd",
"application/vnd.fujixerox.docuworks" => "xdw",
"application/vnd.fujixerox.docuworks.binder" => "xbd",
// "application/vnd.fujixerox.HBPL",
// "application/vnd.fut-misnet",
"application/vnd.fuzzysheet" => "fzs",
"application/vnd.genomatix.tuxedo" => "txd",
"application/vnd.geocube+xml" => array("g³", "g3"),
"application/vnd.geogebra.file" => "ggb",
"application/vnd.geogebra.tool" => "ggt",
"application/vnd.geometry-explorer" => array("gex", "gre"),
"application/vnd.geonext" => "gxt",
"application/vnd.geoplan" => "g2w",
"application/vnd.geospace" => "g3w",
// "application/vnd.globalplatform.card-content-mgt",
// "application/vnd.globalplatform.card-content-mgt-response",
"application/vnd.google-earth.kml+xml" => "kml",
"application/vnd.google-earth.kmz" => "kmz",
"application/vnd.grafeq" => array("gqf", "gqs"),
// "application/vnd.gridmp",
"application/vnd.groove-account" => "gac",
"application/vnd.groove-help" => "ghf",
"application/vnd.groove-identity-message" => "gim",
"application/vnd.groove-injector" => "grv",
"application/vnd.groove-tool-message" => "gtm",
"application/vnd.groove-tool-template" => "tpl",
"application/vnd.groove-vcard" => "vcg",
"application/vnd.HandHeld-Entertainment+xml" => "zmm",
"application/vnd.hbci" => array("bpd", "hbc", "hbci", "kom", "pkd", "upa"),
"application/vnd.hcl-bireports" => "rep",
"application/vnd.hhe.lesson-player" => "les",
"application/vnd.hp-HPGL" => "hpgl",
"application/vnd.hp-hpid" => array("hpi", "hpid"),
"application/vnd.hp-hps" => "hps",
"application/vnd.hp-jlyt" => "jlt",
"application/vnd.hp-PCL" => "pcl",
// "application/vnd.hp-PCLXL",
// "application/vnd.httphone",
"application/vnd.hydrostatix.sof-data" => "sfd-hdstx",
"application/vnd.hzn-3d-crossword" => "x3d",
// "application/vnd.ibm.afplinedata",
"application/vnd.ibm.electronic-media" => "emm",
"application/vnd.ibm.MiniPay" => "mpy",
"application/vnd.ibm.modcap" => array("afp", "list3820", "listafp", "pseg3820"),
"application/vnd.ibm.rights-management" => "irm",
"application/vnd.ibm.secure-container" => "sc",
"application/vnd.iccprofile" => array("icc", "icm"),
"application/vnd.igloader" => "igl",
"application/vnd.immervision-ivp" => "ivp",
"application/vnd.immervision-ivu" => "ivu",
// "application/vnd.informedcontrol.rms+xml",
// "application/vnd.infotech.project",
// "application/vnd.infotech.project+xml",
"application/vnd.insors.igm" => "igm",
"application/vnd.intercon.formnet" => array("xpw", "xpx"),
"application/vnd.intergeo" => "i2g",
// "application/vnd.intertrust.digibox",
// "application/vnd.intertrust.nncp",
"application/vnd.intu.qbo" => "qbo",
"application/vnd.intu.qfx" => "qfx",
// "application/vnd.iptc.g2.conceptitem+xml",
// "application/vnd.iptc.g2.knowledgeitem+xml",
// "application/vnd.iptc.g2.newsitem+xml",
// "application/vnd.iptc.g2.packageitem+xml",
"application/vnd.ipunplugged.rcprofile" => "rcprofile",
"application/vnd.irepository.package+xml" => "irp",
"application/vnd.is-xpr" => "xpr",
"application/vnd.isac.fcs" => "fcs",
"application/vnd.jam" => "jam",
// "application/vnd.japannet-directory-service",
// "application/vnd.japannet-jpnstore-wakeup",
// "application/vnd.japannet-payment-wakeup",
// "application/vnd.japannet-registration",
// "application/vnd.japannet-registration-wakeup",
// "application/vnd.japannet-setstore-wakeup",
// "application/vnd.japannet-verification",
// "application/vnd.japannet-verification-wakeup",
"application/vnd.jcp.javame.midlet-rms" => "rms",
"application/vnd.jisp" => "jisp",
"application/vnd.joost.joda-archive" => "joda",
"application/vnd.kahootz" => array("ktr", "ktz"),
"application/vnd.kde.karbon" => "karbon",
"application/vnd.kde.kchart" => "chrt",
"application/vnd.kde.kformula" => "kfo",
"application/vnd.kde.kivio" => "flw",
"application/vnd.kde.kontour" => "kon",
"application/vnd.kde.kpresenter" => array("kpr", "kpt"),
"application/vnd.kde.kspread" => "ksp",
"application/vnd.kde.kword" => array("kwd", "kwt"),
"application/vnd.kenameaapp" => "htke",
"application/vnd.kidspiration" => "kia",
"application/vnd.Kinar" => array("kne", "knp", "sdf"),
"application/vnd.koan" => array("skd", "skm", "skp", "skt"),
"application/vnd.kodak-descriptor" => "sse",
"application/vnd.las.las+xml" => "lasxml",
// "application/vnd.liberty-request+xml",
"application/vnd.llamagraphics.life-balance.desktop" => "lbd",
"application/vnd.llamagraphics.life-balance.exchange+xml" => "lbe",
"application/vnd.lotus-1-2-3" => array("123", "wk1", "wk3", "wk4"),
"application/vnd.lotus-approach" => array("apr", "vew"),
"application/vnd.lotus-freelance" => array("pre", "prz"),
"application/vnd.lotus-notes" => array("ns4", "ns3", "ns2", "ndl", "nsf", "nsh", "nsg", "ntf"),
"application/vnd.lotus-organizer" => array("or2", "or3", "org"),
"application/vnd.lotus-screencam" => "scm",
"application/vnd.lotus-wordpro" => array("lwp", "sam"),
"application/vnd.macports.portpkg" => "portpkg",
// "application/vnd.marlin.drm.actiontoken+xml",
// "application/vnd.marlin.drm.conftoken+xml",
// "application/vnd.marlin.drm.license+xml",
"application/vnd.marlin.drm.mdcf" => "mdc",
"application/vnd.mcd" => "mcd",
"application/vnd.medcalcdata" => "mc1",
"application/vnd.mediastation.cdkey" => "cdkey",
// "application/vnd.meridian-slingshot",
"application/vnd.MFER" => "mwf",
"application/vnd.mfmp" => "mfm",
"application/vnd.micrografx.flo" => "flo",
"application/vnd.micrografx.igx" => "igx",
"application/vnd.mif" => "mif",
// "application/vnd.minisoft-hp3000-save",
// "application/vnd.mitsubishi.misty-guard.trustweb",
"application/vnd.Mobius.DAF" => "daf",
"application/vnd.Mobius.DIS" => "dis",
"application/vnd.Mobius.MBK" => "mbk",
"application/vnd.Mobius.MQY" => "mqy",
"application/vnd.Mobius.MSL" => "msl",
"application/vnd.Mobius.PLC" => "plc",
"application/vnd.Mobius.TXF" => "txf",
"application/vnd.mophun.application" => "mpn",
"application/vnd.mophun.certificate" => "mpc",
// "application/vnd.motorola.flexsuite",
// "application/vnd.motorola.flexsuite.adsi",
// "application/vnd.motorola.flexsuite.fis",
// "application/vnd.motorola.flexsuite.gotap",
// "application/vnd.motorola.flexsuite.kmr",
// "application/vnd.motorola.flexsuite.ttc",
// "application/vnd.motorola.flexsuite.wem",
// "application/vnd.motorola.iprm",
"application/vnd.mozilla.xul+xml" => "xul",
"application/vnd.ms-artgalry" => "cil",
"application/vnd.ms-asf" => "asf",
"application/vnd.ms-cab-compressed" => "cab",
"application/vnd.ms-excel" => "xls",
"application/vnd.ms-excel.template.macroEnabled.12" => "xltm",
"application/vnd.ms-excel.addin.macroEnabled.12" => "xlam",
"application/vnd.ms-excel.sheet.binary.macroEnabled.12" => "xlsb",
"application/vnd.ms-excel.sheet.macroEnabled.12" => "xlsm",
"application/vnd.ms-fontobject" => "eot",
"application/vnd.ms-htmlhelp" => "chm",
"application/vnd.ms-ims" => "ims",
"application/vnd.ms-lrm" => "lrm",
// "application/vnd.ms-office.activeX+xml",
"application/vnd.ms-officetheme" => "thmx",
// "application/vnd.ms-playready.initiator+xml",
"application/vnd.ms-powerpoint" => "ppt",
"application/vnd.ms-powerpoint.addin.macroEnabled.12" => "ppam",
"application/vnd.ms-powerpoint.presentation.macroEnabled.12" => "pptm",
"application/vnd.ms-powerpoint.slide.macroEnabled.12" => "sldm",
"application/vnd.ms-powerpoint.slideshow.macroEnabled.12" => "ppsm",
"application/vnd.ms-powerpoint.template.macroEnabled.12" => "potm",
"application/vnd.ms-project" => "mpp",
"application/vnd.ms-tnef" => array("tnef", "tnf"),
// "application/vnd.ms-wmdrm.lic-chlg-req",
// "application/vnd.ms-wmdrm.lic-resp",
// "application/vnd.ms-wmdrm.meter-chlg-req",
// "application/vnd.ms-wmdrm.meter-resp",
"application/vnd.ms-word.document.macroEnabled.12" => "docm",
"application/vnd.ms-word.template.macroEnabled.12" => "dotm",
"application/vnd.ms-works" => array("wcm", "wdb", "wks", "wps"),
"application/vnd.ms-wpl" => "wpl",
"application/vnd.ms-xpsdocument" => "xps",
"application/vnd.mseq" => "mseq",
// "application/vnd.msign",
"application/vnd.multiad.creator" => "crtr",
"application/vnd.multiad.creator.cif" => "cif",
// "application/vnd.music-niff",
"application/vnd.musician" => "mus",
"application/vnd.muvee.style" => "msty",
// "application/vnd.ncd.control",
// "application/vnd.ncd.reference",
"application/vnd.nervana" => array("bkm", "entity", "kcm", "request"),
// "application/vnd.netfpx",
"application/vnd.neurolanguage.nlu" => "nlu",
"application/vnd.noblenet-directory" => "nnd",
"application/vnd.noblenet-sealer" => "nns",
"application/vnd.noblenet-web" => "nnw",
// "application/vnd.nokia.catalogs",
// "application/vnd.nokia.conml+wbxml",
// "application/vnd.nokia.conml+xml",
// "application/vnd.nokia.iptv.config+xml",
// "application/vnd.nokia.iSDS-radio-presets",
// "application/vnd.nokia.landmark+wbxml",
// "application/vnd.nokia.landmark+xml",
// "application/vnd.nokia.landmarkcollection+xml",
"application/vnd.nokia.n-gage.ac+xml" => "ac",
"application/vnd.nokia.n-gage.data" => "ngdat",
"application/vnd.nokia.n-gage.symbian.install" => "n-gage",
// "application/vnd.nokia.ncd",
// "application/vnd.nokia.pcd+wbxml",
// "application/vnd.nokia.pcd+xml",
"application/vnd.nokia.radio-preset" => "rpst",
"application/vnd.nokia.radio-presets" => "rpss",
"application/vnd.novadigm.EDM" => "edm",
"application/vnd.novadigm.EDX" => "edx",
"application/vnd.novadigm.EXT" => "ext",
// "application/vnd.ntt-local.file-transfer",
// "application/vnd.ntt-local.sip-ta_remote",
// "application/vnd.ntt-local.sip-ta_tcp_stream",
"application/vnd.oasis.opendocument.chart" => "odc",
"application/vnd.oasis.opendocument.chart-template" => "otc",
"application/vnd.oasis.opendocument.database" => "odb",
"application/vnd.oasis.opendocument.formula" => "odf",
"application/vnd.oasis.opendocument.formula-template" => "otf",
"application/vnd.oasis.opendocument.graphics" => "odg",
"application/vnd.oasis.opendocument.graphics-template" => "otg",
"application/vnd.oasis.opendocument.image" => "odi",
"application/vnd.oasis.opendocument.image-template" => "oti",
"application/vnd.oasis.opendocument.presentation" => "odp",
"application/vnd.oasis.opendocument.presentation-template" => "otp",
"application/vnd.oasis.opendocument.spreadsheet" => "ods",
"application/vnd.oasis.opendocument.spreadsheet-template" => "ots",
"application/vnd.oasis.opendocument.text" => "odt",
"application/vnd.oasis.opendocument.text-master" => "odm",
"application/vnd.oasis.opendocument.text-template" => "ott",
"application/vnd.oasis.opendocument.text-web" => "oth",
// "application/vnd.obn",
// "application/vnd.oipf.contentaccessdownload+xml",
// "application/vnd.oipf.contentaccessstreaming+xml",
// "application/vnd.oipf.cspg-hexbinary",
// "application/vnd.oipf.dae.svg+xml",
// "application/vnd.oipf.dae.xhtml+xml",
// "application/vnd.oipf.mippvcontrolmessage+xml",
// "application/vnd.oipf.pae.gem",
// "application/vnd.oipf.spdiscovery+xml",
// "application/vnd.oipf.spdlist+xml",
// "application/vnd.oipf.ueprofile+xml",
"application/vnd.olpc-sugar" => "xo",
// "application/vnd.oma.bcast.associated-procedure-parameter+xml",
// "application/vnd.oma.bcast.drm-trigger+xml",
// "application/vnd.oma.bcast.imd+xml",
// "application/vnd.oma.bcast.ltkm",
// "application/vnd.oma.bcast.notification+xml",
// "application/vnd.oma.bcast.provisioningtrigger",
// "application/vnd.oma.bcast.sgboot",
// "application/vnd.oma.bcast.sgdd+xml",
// "application/vnd.oma.bcast.sgdu",
// "application/vnd.oma.bcast.simple-symbol-container",
// "application/vnd.oma.bcast.smartcard-trigger+xml",
// "application/vnd.oma.bcast.sprov+xml",
// "application/vnd.oma.bcast.stkm",
// "application/vnd.oma.cab-address-book+xml",
// "application/vnd.oma.cab-feature-handler+xml",
// "application/vnd.oma.cab-pcc+xml",
// "application/vnd.oma.cab-user-prefs+xml",
// "application/vnd.oma.dcd",
// "application/vnd.oma.dcdc",
"application/vnd.oma.dd2+xml" => "dd2",
// "application/vnd.oma.drm.risd+xml",
// "application/vnd.oma.group-usage-list+xml",
// "application/vnd.oma.poc.detailed-progress-report+xml",
// "application/vnd.oma.poc.final-report+xml",
// "application/vnd.oma.poc.groups+xml",
// "application/vnd.oma.poc.invocation-descriptor+xml",
// "application/vnd.oma.poc.optimized-progress-report+xml",
// "application/vnd.oma.push",
// "application/vnd.oma.scidm.messages+xml",
// "application/vnd.oma.xcap-directory+xml",
// "application/vnd.oma-scws-config",
// "application/vnd.oma-scws-http-request",
// "application/vnd.oma-scws-http-response",
// "application/vnd.omads-email+xml",
// "application/vnd.omads-file+xml",
// "application/vnd.omads-folder+xml",
// "application/vnd.omaloc-supl-init",
"application/vnd.openofficeorg.extension" => "oxt",
// "application/vnd.openxmlformats-officedocument.custom-properties+xml",
// "application/vnd.openxmlformats-officedocument.customXmlProperties+xml",
// "application/vnd.openxmlformats-officedocument.drawing+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.chart+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml",
// "application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml",
// "application/vnd.openxmlformats-officedocument.extended-properties+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.commentAuthors+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.comments+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.handoutMaster+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.notesMaster+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.notesSlide+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.presProps+xml",
"application/vnd.openxmlformats-officedocument.presentationml.presentation" => "pptx",
// "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml",
"application/vnd.openxmlformats-officedocument.presentationml.slide" => "sldx",
// "application/vnd.openxmlformats-officedocument.presentationml.slide+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.slideLayout+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.slideMaster+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.slideUpdateInfo+xml",
"application/vnd.openxmlformats-officedocument.presentationml.slideshow" => "ppsx",
// "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.tableStyles+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.tags+xml",
"application/vnd.openxmlformats-officedocument.presentationml.template" => "potx",
// "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml",
// "application/vnd.openxmlformats-officedocument.presentationml.viewProps+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" => "xlsx",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml",
"application/vnd.openxmlformats-officedocument.spreadsheetml.template" => "xltx",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml",
// "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",
// "application/vnd.openxmlformats-officedocument.theme+xml",
// "application/vnd.openxmlformats-officedocument.themeOverride+xml",
// "application/vnd.openxmlformats-officedocument.vmlDrawing",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" => "docx",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml",
"application/vnd.openxmlformats-officedocument.wordprocessingml.template" => "dotx",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml",
// "application/vnd.openxmlformats-officedocument.wordprocessingml.webSettings+xml",
// "application/vnd.openxmlformats-package.core-properties+xml",
// "application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml",
// "application/vnd.openxmlformats-package.relationships+xml",
"application/vnd.osa.netdeploy" => "ndc",
"application/vnd.osgeo.mapguide.package" => "mgp",
// "application/vnd.osgi.bundle",
"application/vnd.osgi.dp" => "dp",
// "application/vnd.otps.ct-kip+xml",
"application/vnd.palm" => array("oprc", "pdb", "pqa", "prc"),
// "application/vnd.paos+xml",
"application/vnd.pawaafile" => "paw",
"application/vnd.pg.format" => "str",
"application/vnd.pg.osasli" => "ei6",
"application/vnd.piaccess.application-license" => "pil",
"application/vnd.picsel" => "efif",
"application/vnd.pmi.widget" => "wg",
// "application/vnd.poc.group-advertisement+xml",
"application/vnd.pocketlearn" => "plf",
"application/vnd.powerbuilder6" => "pbd",
// "application/vnd.powerbuilder6-s",
// "application/vnd.powerbuilder7",
// "application/vnd.powerbuilder7-s",
// "application/vnd.powerbuilder75",
// "application/vnd.powerbuilder75-s",
"application/vnd.preminet" => "preminet",
"application/vnd.previewsystems.box" => array("box", "vbox"),
"application/vnd.proteus.magazine" => "mgz",
"application/vnd.publishare-delta-tree" => "qps",
"application/vnd.pvi.ptid1" => "ptid",
// "application/vnd.pwg-multiplexed",
// "application/vnd.pwg-xhtml-print+xml",
"application/vnd.qualcomm.brew-app-res" => "bar",
"application/vnd.Quark.QuarkXPress" => array("qwd", "qwt", "qxb", "qxd", "qxl", "qxt"),
"application/vnd.quobject-quoxdocument" => array("quix", "quoz"),
// "application/vnd.radisys.moml+xml",
// "application/vnd.radisys.msml-audit-conf+xml",
// "application/vnd.radisys.msml-audit-conn+xml",
// "application/vnd.radisys.msml-audit-dialog+xml",
// "application/vnd.radisys.msml-audit-stream+xml",
// "application/vnd.radisys.msml-audit+xml",
// "application/vnd.radisys.msml-conf+xml",
// "application/vnd.radisys.msml-dialog-base+xml",
// "application/vnd.radisys.msml-dialog-fax-detect+xml",
// "application/vnd.radisys.msml-dialog-fax-sendrecv+xml",
// "application/vnd.radisys.msml-dialog-group+xml",
// "application/vnd.radisys.msml-dialog-speech+xml",
// "application/vnd.radisys.msml-dialog-transform+xml",
// "application/vnd.radisys.msml-dialog+xml",
// "application/vnd.radisys.msml+xml",
"application/vnd.rainstor.data" => "tree",
// "application/vnd.rapid",
"application/vnd.realvnc.bed" => "bed",
"application/vnd.recordare.musicxml" => "mxl",
// "application/vnd.recordare.musicxml+xml",
// "application/vnd.RenLearn.rlprint",
"application/vnd.rig.cryptonote" => "cryptonote",
"application/vnd.route66.link66+xml" => "link66",
// "application/vnd.ruckus.download",
// "application/vnd.s3sms",
"application/vnd.sailingtracker.track" => "st",
// "application/vnd.sbm.cid",
// "application/vnd.sbm.mid2",
"application/vnd.scribus" => array("scd", "sla", "slaz"),
"application/vnd.sealed.3df" => "s3df",
"application/vnd.sealed.csf" => "scsf",
"application/vnd.sealed.doc" => array("s1w", "sdo", "sdoc"),
"application/vnd.sealed.eml" => array("sem", "seml"),
"application/vnd.sealed.mht" => array("smh", "smht"),
// "application/vnd.sealed.net",
"application/vnd.sealed.ppt" => array("s1p", "sppt"),
"application/vnd.sealed.tiff" => "stif",
"application/vnd.sealed.xls" => array("s1e", "sxl", "sxls"),
"application/vnd.sealedmedia.softseal.html" => array("s1h", "stml"),
"application/vnd.sealedmedia.softseal.pdf" => array("s1a", "spd", "spdf"),
"application/vnd.seemail" => "see",
"application/vnd.sema" => "sema",
"application/vnd.semd" => "semd",
"application/vnd.semf" => "semf",
"application/vnd.shana.informed.formdata" => "ifm",
"application/vnd.shana.informed.formtemplate" => "itp",
"application/vnd.shana.informed.interchange" => "iif",
"application/vnd.shana.informed.package" => "ipk",
"application/vnd.SimTech-MindMapper" => array("twd", "twds"),
"application/vnd.smaf" => "mmf",
"application/vnd.smart.notebook" => "notebook",
"application/vnd.smart.teacher" => "teacher",
"application/vnd.software602.filler.form+xml" => "fo",
"application/vnd.software602.filler.form-xml-zip" => "zfo",
"application/vnd.solent.sdkm+xml" => array("sdkd", "sdkm"),
"application/vnd.spotfire.dxp" => "dxp",
"application/vnd.spotfire.sfs" => "sfs",
// "application/vnd.sss-cod",
// "application/vnd.sss-dtf",
// "application/vnd.sss-ntf",
"application/vnd.stepmania.stepchart" => "sm",
// "application/vnd.street-stream",
"application/vnd.sun.wadl+xml" => "wadl",
"application/vnd.sus-calendar" => array("sus", "susp"),
// "application/vnd.svd",
// "application/vnd.swiftview-ics",
// "application/vnd.syncml.dm.notification",
// "application/vnd.syncml.ds.notification",
"application/vnd.syncml.dm+wbxml" => "bdm",
"application/vnd.syncml.dm+xml" => "xdm",
"application/vnd.syncml+xml" => "xsm",
"application/vnd.tao.intent-module-archive" => "tao",
"application/vnd.tmobile-livetv" => "tmo",
"application/vnd.trid.tpt" => "tpt",
"application/vnd.triscape.mxs" => "mxs",
"application/vnd.trueapp" => "tra",
// "application/vnd.truedoc",
// "application/vnd.ubisoft.webplayer",
"application/vnd.ufdl" => array("frm", "ufd", "ufdl"),
"application/vnd.uiq.theme" => "utz",
"application/vnd.umajin" => "umj",
"application/vnd.unity" => "unityweb",
"application/vnd.uoml+xml" => array("uo", "uoml"),
// "application/vnd.uplanet.alert",
// "application/vnd.uplanet.alert-wbxml",
// "application/vnd.uplanet.bearer-choice",
// "application/vnd.uplanet.bearer-choice-wbxml",
// "application/vnd.uplanet.cacheop",
// "application/vnd.uplanet.cacheop-wbxml",
// "application/vnd.uplanet.channel",
// "application/vnd.uplanet.channel-wbxml",
// "application/vnd.uplanet.list",
// "application/vnd.uplanet.list-wbxml",
// "application/vnd.uplanet.listcmd",
// "application/vnd.uplanet.listcmd-wbxml",
// "application/vnd.uplanet.signal",
"application/vnd.vcx" => "vcx",
"application/vnd.vd-study" => array("model-inter", "mxi", "study-inter"),
"application/vnd.vectorworks" => "vwx",
// "application/vnd.verimatrix.vcas",
"application/vnd.vidsoft.vidconference" => "vsc",
"application/vnd.visio" => array("vsd", "vss", "vst", "vsw"),
"application/vnd.visionary" => "vis",
// "application/vnd.vividence.scriptfile",
"application/vnd.vsf" => "vsf",
"application/vnd.wap.sic" => "sic",
"application/vnd.wap.slc" => "slc",
"application/vnd.wap.wbxml" => "wbxml",
"application/vnd.wap.wmlc" => "wmlc",
"application/vnd.wap.wmlscriptc" => "wmlsc",
"application/vnd.webturbo" => "wtb",
"application/vnd.wfa.wsc" => "wsc",
"application/vnd.wmc" => "wmc",
// "application/vnd.wmf.bootstrap",
"application/vnd.wolfram.mathematica" => "nb",
"application/vnd.wolfram.mathematica.package" => "m",
"application/vnd.wolfram.player" => "nbp",
"application/vnd.wordperfect" => "wpd",
"application/vnd.wqd" => "wqd",
// "application/vnd.wrq-hp3000-labelled",
"application/vnd.wt.stf" => "stf",
// "application/vnd.wv.csp+xml",
"application/vnd.wv.csp+wbxml" => "wv",
// "application/vnd.wv.ssp+xml",
"application/vnd.xara" => "xar",
"application/vnd.xfdl" => array("xfd", "xfdl"),
// "application/vnd.xfdl.webform",
// "application/vnd.xmi+xml",
"application/vnd.xmpie.cpkg" => "cpkg",
"application/vnd.xmpie.dpkg" => "dpkg",
"application/vnd.xmpie.plan" => "dpkg",
"application/vnd.xmpie.ppkg" => "ppkg",
"application/vnd.xmpie.xlim" => "xlim",
"application/vnd.yamaha.hv-dic" => "hvd",
"application/vnd.yamaha.hv-script" => "hvs",
"application/vnd.yamaha.hv-voice" => "hvp",
"application/vnd.yamaha.openscoreformat" => "osf",
// "application/vnd.yamaha.openscoreformat.osfpvg+xml",
// "application/vnd.yamaha.remote-setup",
"application/vnd.yamaha.smaf-audio" => "saf",
"application/vnd.yamaha.smaf-phrase" => "spf",
// "application/vnd.yamaha.tunnel-udpencap",
"application/vnd.yellowriver-custom-menu" => "cmp",
"application/vnd.zul" => array("zir", "zirz"),
"application/vnd.zzazz.deck+xml" => "zaz",
"application/voicexml+xml" => "vxml",
// "application/vq-rtcp-xr",
"application/watcherinfo+xml" => "wif",
// "application/whoispp-query",
// "application/whoispp-response",
"application/widget" => "wgt",
// "application/wita",
// "application/wordperfect5.1",
"application/wsdl+xml" => "wsdl",
"application/wspolicy+xml" => "wspolicy",
// "application/x400-bp",
"application/xcap-att+xml" => "xav",
"application/xcap-caps+xml" => "xca",
"application/xcap-diff+xml" => "xdf",
"application/xcap-el+xml" => "xel",
"application/xcap-error+xml" => "xer",
"application/xcap-ns+xml" => "xns",
// "application/xcon-conference-info-diff+xml",
// "application/xcon-conference-info+xml",
// "application/xenc+xml",
"application/xhtml+xml" => array("xhtml", "xhtm", "xht"),
"application/xml" => "xml",
"application/xv+xml" => array("mxml", "xhvml", "xvm", "xvml"),
"application/xml-dtd" => "dtd",
"application/xml-external-parsed-entity" => "ent",
// "application/xmpp+xml",
"application/xop+xml" => "xop",
"application/xslt+xml" => array("xsl", "xslt"),
"application/xv+xml" => array("mxml", "xhvml", "xvm", "xvml"),
"application/yang" => "yang",
"application/yin+xml" => "yin",
"application/zip" => "zip",
// "audio/1d-interleaved-parityfec",
"audio/32kadpcm" => "726",
"audio/3gpp" => array("3gp", "3gpp"),
"audio/3gpp2" => array("3g2", "3gpp2"),
"audio/ac3" => "ac3",
"audio/AMR" => "amr",
"audio/AMR-WB" => "awb",
// "audio/amr-wb+",
"audio/asc" => "acn",
"audio/ATRAC-ADVANCED-LOSSLESS" => "aal",
"audio/ATRAC-X" => "atx",
"audio/ATRAC3" => array("aa3", "at3", "omg"),
"audio/basic" => array("au", "snd"),
// "audio/BV16",
// "audio/BV32",
// "audio/clearmode",
// "audio/CN",
// "audio/DAT12",
"audio/dls" => "dls",
// "audio/dsr-es201108",
// "audio/dsr-es202050",
// "audio/dsr-es202211",
// "audio/dsr-es202212",
// "audio/DVI4",
// "audio/eac3",
"audio/EVRC" => "evc",
// "audio/EVRC-QCP",
// "audio/EVRC0",
// "audio/EVRC1",
"audio/EVRCB" => "evb",
// "audio/EVRCB0",
"audio/EVRCWB" => "evw",
// "audio/EVRCWB0",
// "audio/EVRCWB1",
// "audio/G719",
// "audio/G722",
// "audio/G7221",
// "audio/G723",
// "audio/G726-16",
// "audio/G726-24",
// "audio/G726-32",
// "audio/G726-40",
// "audio/G728",
// "audio/G729",
// "audio/G7291",
// "audio/G729D",
// "audio/G729E",
// "audio/GSM",
// "audio/GSM-EFR",
// "audio/GSM-HR-08",
"audio/iLBC" => "lbc",
// "audio/ip-mr_v2.5",
"audio/L16" => "l16",
// "audio/L20",
// "audio/L24",
// "audio/L8",
// "audio/LPC",
"audio/mobile-xmf" => "mxmf",
// "audio/mp4",
// "audio/MP4A-LATM",
// "audio/MPA",
// "audio/mpa-robust",
"audio/mpeg" => array("mp1", "mp2", "mp3", "mpga"),
// "audio/mpeg4-generic",
"audio/ogg" => array("oga", "ogg", "spx"),
// "audio/parityfec",
// "audio/PCMA",
// "audio/PCMA-WB",
// "audio/PCMU",
// "audio/PCMU-WB",
"audio/prs.sid" => array("psid", "sid"),
"audio/qcelp" => "qcp",
// "audio/RED",
// "audio/rtp-enc-aescm128",
// "audio/rtp-midi",
// "audio/rtx",
"audio/SMV" => "smv",
// "audio/SMV-QCP",
// "audio/SMV0",
// "audio/sp-midi",
// "audio/speex",
// "audio/t140c",
// "audio/t38",
// "audio/telephone-event",
// "audio/tone",
// "audio/UEMCLIP",
// "audio/ulpfec",
// "audio/VDVI",
// "audio/VMR-WB",
// "audio/vnd.3gpp.iufp",
// "audio/vnd.4SB",
"audio/vnd.audikoz" => "koz",
// "audio/vnd.CELP",
// "audio/vnd.cisco.nse",
// "audio/vnd.cmles.radio-events",
// "audio/vnd.cns.anp1",
// "audio/vnd.cns.inf1",
"audio/vnd.dece.audio" => array("uva", "uvva"),
"audio/vnd.digital-winds" => "eol",
// "audio/vnd.dlna.adts",
// "audio/vnd.dolby.heaac.1",
// "audio/vnd.dolby.heaac.2",
"audio/vnd.dolby.mlp" => "mlp",
// "audio/vnd.dolby.mps",
// "audio/vnd.dolby.pl2",
// "audio/vnd.dolby.pl2x",
// "audio/vnd.dolby.pl2z",
// "audio/vnd.dolby.pulse.1",
// "audio/vnd.dra",
"audio/vnd.dts" => "dts",
"audio/vnd.dts.hd" => "dtshd",
"audio/vnd.dvb.file" => "dvb",
"audio/vnd.everad.plj" => "plj",
// "audio/vnd.hns.audio",
"audio/vnd.lucent.voice" => "lvp",
"audio/vnd.ms-playready.media.pya" => "pya",
"audio/vnd.nokia.mobile-xmf" => "mxmf",
"audio/vnd.nortel.vbk" => "vbk",
"audio/vnd.nuera.ecelp4800" => "ecelp4800",
"audio/vnd.nuera.ecelp7470" => "ecelp7470",
"audio/vnd.nuera.ecelp9600" => "ecelp9600",
// "audio/vnd.octel.sbc",
// "audio/vnd.rhetorex.32kadpcm",
"audio/vnd.rip" => "rip",
"audio/vnd.sealedmedia.softseal.mpeg" => array("s1m", "smp", "smp3"),
// "audio/vnd.vmx.cvsd",
// "audio/vorbis",
// "audio/vorbis-config",
// "image/cgm",
"image/fits" => array("fit", "fits", "fts"),
// "image/g3fax",
"image/gif" => "gif",
"image/ief" => "ief",
"image/jp2" => array("jp2", "jpg2"),
"image/jpeg" => array("jfif", "jpe", "jpg", "jpeg"),
"image/jpm" => array("jpgm", "jpm"),
"image/jpx" => array("jpf", "jpx"),
"image/ktx" => "ktx",
// "image/naplps",
"image/png" => "png",
"image/prs.btif" => array("btf", "btif"),
"image/prs.pti" => "pti",
"image/svg+xml" => array("svg", "svgz"),
"image/t38" => "t38",
"image/tiff" => array("tif", "tiff"),
"image/tiff-fx" => "tfx",
"image/vnd.adobe.photoshop" => "psd",
// "image/vnd.cns.inf2",
"image/vnd.dece.graphic" => array("uvg", "uvi", "uvvg", "uvvi"),
"image/vnd.djvu" => array("djv", "djvu"),
"image/vnd.dvb.subtitle" => "sub",
// "image/vnd.dwg",
"image/vnd.dxf" => "dxf",
"image/vnd.fastbidsheet" => "fbs",
"image/vnd.fpx" => "fpx",
"image/vnd.fst" => "fst",
"image/vnd.fujixerox.edmics-mmr" => "mmr",
"image/vnd.fujixerox.edmics-rlc" => "rlc",
"image/vnd.globalgraphics.pgb" => "pgb",
"image/vnd.microsoft.icon" => "ico",
// "image/vnd.mix",
"image/vnd.ms-modi" => "mdi",
// "image/vnd.net-fpx",
"image/vnd.radiance" => array("hdr", "rgbe", "xyze"),
"image/vnd.sealed.png" => array("s1n", "spn", "spng"),
"image/vnd.sealedmedia.softseal.gif" => array("s1g", "sgi", "sgif"),
"image/vnd.sealedmedia.softseal.jpg" => array("s1j", "sjp", "sjpg"),
// "image/vnd.svf",
"image/vnd.wap.wbmp" => "wbmp",
"image/vnd.xiff" => "xif",
// "message/CPIM",
// "message/delivery-status",
// "message/disposition-notification",
// "message/external-body",
// "message/feedback-report",
"message/global" => "u8msg",
"message/global-delivery-status" => "u8dsn",
"message/global-disposition-notification" => "u8mdn",
"message/global-headers" => "u8hdr",
// "message/http",
// "message/imdn+xml",
// "message/partial",
"message/rfc822" => array("art", "eml", "mail"),
// "message/s-http",
// "message/sip",
// "message/sipfrag",
// "message/tracking-status",
// "message/vnd.si.simp",
"model/iges" => array("iges", "igs"),
"model/mesh" => array("mesh", "msh", "silo"),
"model/vnd.collada+xml" => "dae",
"model/vnd.dwf" => "dwf",
"model/vnd.flatland.3dml" => array("3dm", "3dml"),
"model/vnd.gdl" => array("dor", "gdl", "gsm", "lmp", "ism", "rsm", "msm", "win"),
// "model/vnd.gs-gdl",
"model/vnd.gtw" => "gtw",
"model/vnd.moml+xml" => "moml",
"model/vnd.mts" => "mts",
"model/vnd.parasolid.transmit.binary" => array("x_b", "xmt_bin"),
"model/vnd.parasolid.transmit.text" => array("x_t", "xmt_txt"),
"model/vnd.vtu" => "vtu",
"model/vrml" => array("vrml", "wrl"),
// "multipart/alternative",
// "multipart/appledouble",
// "multipart/byteranges",
// "multipart/digest",
// "multipart/encrypted",
// "multipart/form-data",
// "multipart/header-set",
// "multipart/mixed",
// "multipart/parallel",
// "multipart/related",
// "multipart/report",
// "multipart/signed",
"multipart/voice-message" => "vpm",
// "text/1d-interleaved-parityfec",
"text/calendar" => array("ics", "ifb"),
"text/css" => "css",
"text/csv" => "csv",
// "text/directory",
"text/dns" => array("soa", "zone"),
// "text/enriched",
"text/html" => array("html", "htm"),
"text/n3" => "n3",
// "text/parityfec",
"text/plain" => array("asc", "c", "cc", "cxx", "el", "f90", "h", "hh", "hxx", "pm", "text", "txt"),
"text/prs.fallenstein.rst" => "rst",
"text/prs.lines.tag" => array("dsc", "tag"),
// "text/RED",
// "text/rfc822-headers",
"text/richtext" => "rtx",
// "text/rtf",
// "text/rtp-enc-aescm128",
// "text/rtx",
"text/sgml" => array("sgm", "sgml"),
// "text/t140",
"text/tab-separated-values" => "tsv",
// "text/troff",
"text/turtle" => "ttl",
// "text/ulpfec",
"text/uri-list" => array("uri", "uris"),
"text/vnd.abc" => "abc",
// "text/vnd.curl",
"text/vnd.DMClientScript" => "dms",
"text/vnd.esmertec.theme-descriptor" => "jtd",
"text/vnd.fly" => "fly",
"text/vnd.fmi.flexstor" => "flx",
"text/vnd.graphviz" => array("dot", "gv"),
"text/vnd.in3d.3dml" => array("3dm", "3dml"),
"text/vnd.in3d.spot" => array("spo", "spot"),
// "text/vnd.IPTC.NewsML",
// "text/vnd.IPTC.NITF",
// "text/vnd.latex-z",
// "text/vnd.motorola.reflex",
"text/vnd.ms-mediapackage" => "mpf",
"text/vnd.net2phone.commcenter.command" => "ccc",
// "text/vnd.radisys.msml-basic-layout",
"text/vnd.si.uricatalogue" => "uric",
"text/vnd.sun.j2me.app-descriptor" => "jad",
"text/vnd.trolltech.linguist" => "ts",
"text/vnd.wap.si" => "si",
"text/vnd.wap.sl" => "sl",
"text/vnd.wap.wml" => "wml",
"text/vnd.wap.wmlscript" => "wmls",
"text/xml" => array("rng", "xml", "xsd"),
"text/xml-external-parsed-entity" => "ent",
// "video/1d-interleaved-parityfec",
"video/3gpp" => array("3gp", "3gpp"),
"video/3gpp2" => array("3g2", "3gpp2"),
// "video/3gpp-tt",
// "video/BMPEG",
// "video/BT656",
// "video/CelB",
// "video/DV",
// "video/H261",
// "video/H263",
// "video/H263-1998",
// "video/H263-2000",
// "video/H264",
// "video/H264-RCDO",
// "video/H264-SVC",
// "video/JPEG",
// "video/jpeg2000",
"video/mj2" => array("mj2", "mjp2"),
// "video/MP1S",
// "video/MP2P",
// "video/MP2T",
"video/mp4" => array("mp4", "mpg4"),
// "video/MP4V-ES",
"video/mpeg" => array("mpe", "mpeg", "mpg"),
// "video/mpeg4-generic",
// "video/MPV",
// "video/nv",
"video/ogg" => "ogv",
// "video/parityfec",
// "video/pointer",
"video/quicktime" => array("qt", "mov"),
// "video/raw",
// "video/rtp-enc-aescm128",
// "video/rtx",
// "video/SMPTE292M",
// "video/ulpfec",
// "video/vc1",
// "video/vnd.CCTV",
"video/vnd.dece.hd" => array("uvh", "uvvh"),
"video/vnd.dece.mobile" => array("uvm", "uvvm"),
"video/vnd.dece.mp4" => array("uvu", "uvvu"),
"video/vnd.dece.pd" => array("uvp", "uvvp"),
"video/vnd.dece.sd" => array("uvs", "uvvs"),
"video/vnd.dece.video" => array("uvv", "uvvv"),
// "video/vnd.directv.mpeg",
// "video/vnd.directv.mpeg-tts",
// "video/vnd.dlna.mpeg-tts",
"video/vnd.fvt" => "fvt",
// "video/vnd.hns.video",
// "video/vnd.iptvforum.1dparityfec-1010",
// "video/vnd.iptvforum.1dparityfec-2005",
// "video/vnd.iptvforum.2dparityfec-1010",
// "video/vnd.iptvforum.2dparityfec-2005",
// "video/vnd.iptvforum.ttsavc",
// "video/vnd.iptvforum.ttsmpeg2",
// "video/vnd.motorola.video",
// "video/vnd.motorola.videop",
"video/vnd.mpegurl" => array("m4u", "mxu"),
"video/vnd.ms-playready.media.pyv" => "pyv",
"video/vnd.nokia.interleaved-multimedia" => "nim",
// "video/vnd.nokia.videovoip",
// "video/vnd.objectvideo",
"video/vnd.sealed.mpeg1" => array("s11", "smpg"),
"video/vnd.sealed.mpeg4" => "s14",
"video/vnd.sealed.swf" => array("ssw", "sswf"),
"video/vnd.sealedmedia.softseal.mov" => array("s1q", "smo", "smov"),
// "video/vnd.uvvu.mp4",
// "video/vnd.vivo",
/** Non-IANA types **/
"application/epub+zip" => "epub",
"application/mac-compactpro" => "cpt",
"application/metalink+xml" => "metalink",
"application/rss+xml" => "rss",
"application/vnd.android.package-archive" => "apk",
"application/vnd.oma.dd+xml" => "dd",
"application/vnd.oma.drm.content" => "dcf",
"application/vnd.oma.drm.dcf" => array("o4a", "o4v"),
"application/vnd.oma.drm.message" => "dm",
"application/vnd.oma.drm.rights+wbxml" => "drc",
"application/vnd.oma.drm.rights+xml" => "dr",
"application/vnd.sun.xml.calc" => "sxc",
"application/vnd.sun.xml.calc.template" => "stc",
"application/vnd.sun.xml.draw" => "sxd",
"application/vnd.sun.xml.draw.template" => "std",
"application/vnd.sun.xml.impress" => "sxi",
"application/vnd.sun.xml.impress.template" => "sti",
"application/vnd.sun.xml.math" => "sxm",
"application/vnd.sun.xml.writer" => "sxw",
"application/vnd.sun.xml.writer.global" => "sxg",
"application/vnd.sun.xml.writer.template" => "stw",
"application/vnd.symbian.install" => "sis",
"application/vnd.wap.mms-message" => "mms",
"application/x-annodex" => "anx",
"application/x-bcpio" => "bcpio",
"application/x-bittorrent" => "torrent",
"application/x-bzip2" => "bz2",
"application/x-cdlink" => "vcd",
"application/x-chess-pgn" => "pgn",
"application/x-cpio" => "cpio",
"application/x-csh" => "csh",
"application/x-director" => array("dcr", "dir", "dxr"),
"application/x-dvi" => "dvi",
"application/x-futuresplash" => "spl",
"application/x-gtar" => "gtar",
"application/x-gzip" => array("gz", "tgz"),
"application/x-hdf" => "hdf",
"application/x-java-archive" => "jar",
"application/x-java-jnlp-file" => "jnlp",
"application/x-java-pack200" => "pack",
"application/x-killustrator" => "kil",
"application/x-latex" => "latex",
"application/x-netcdf" => array("cdf", "nc"),
"application/x-perl" => "pl",
"application/x-rpm" => "rpm",
"application/x-sh" => "sh",
"application/x-shar" => "shar",
"application/x-shockwave-flash" => "swf",
"application/x-stuffit" => "sit",
"application/x-sv4cpio" => "sv4cpio",
"application/x-sv4crc" => "sv4crc",
"application/x-tar" => "tar",
"application/x-tcl" => "tcl",
"application/x-tex" => "tex",
"application/x-texinfo" => array("texi", "texinfo"),
"application/x-troff" => array("roff", "t", "tr"),
"application/x-troff-man" => array("1", "2", "3", "4", "5", "6", "7", "8", "man"),
"application/x-troff-me" => "me",
"application/x-troff-ms" => "ms",
"application/x-ustar" => "ustar",
"application/x-wais-source" => "src",
"application/x-xpinstall" => "xpi",
"application/x-xspf+xml" => "xspf",
"application/x-xz" => "xz",
"audio/midi" => array("kar", "mid", "midi"),
"audio/x-aiff" => array("aif", "aifc", "aiff"),
"audio/x-annodex" => "axa",
"audio/x-flac" => "flac",
"audio/x-mod" => array("669", "m15", "med", "mod", "mtm", "ult", "uni"),
"audio/x-mpegurl" => "m3u",
"audio/x-ms-wax" => "wax",
"audio/x-ms-wma" => "wma",
"audio/x-pn-realaudio" => array("ram", "rm"),
"audio/x-realaudio" => "ra",
"audio/x-s3m" => "s3m",
"audio/x-stm" => "stm",
"audio/x-wav" => "wav",
"image/bmp" => "bmp",
"image/x-cmu-raster" => "ras",
"image/x-portable-anymap" => "pnm",
"image/x-portable-bitmap" => "pbm",
"image/x-portable-graymap" => "pgm",
"image/x-portable-pixmap" => "ppm",
"image/x-rgb" => "rgb",
"image/x-targa" => "tga",
"image/x-xbitmap" => "xbm",
"image/x-xpixmap" => "xpm",
"image/x-xwindowdump" => "xwd",
"text/cache-manifest" => "manifest",
"text/html-sandboxed" => "sandboxed",
"text/x-pod" => "pod",
"text/x-setext" => "etx",
"text/x-vcard" => "vcf",
"video/webm" => "webm",
"video/x-annodex" => "axv",
"video/x-flv" => "flv",
"video/x-javafx" => "fxm",
"video/x-ms-asf" => "asx",
"video/x-ms-wm" => "wm",
"video/x-ms-wmv" => "wmv",
"video/x-ms-wmx" => "wmx",
"video/x-ms-wvx" => "wvx",
"video/x-msvideo" => "avi",
"video/x-sgi-movie" => "movie",
"x-conference/x-cooltalk" => "ice",
"x-epoc/x-sisx-app" => "sisx",
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment