Interface/enum listing standard mime-type constants

JavaGwtMime TypesContent TypeGuava

Java Problem Overview


I am looking among the standard libraries (like apache commons, jax, jboss, javax) for an interface or enum that lists the values of all the standard mime-type (aka content-type).

This interface should not be encumbered with too deep with other classes that would make it difficult to include the whole bunch as gwt source code.

for example

interface ContentType{
  String JSON = "Application/JSON";
  blah ... blah ...
}

or,

enum ContentType{
  JSON("Application/JSON"),
  blah ... blah ...
}

Java Solutions


Solution 1 - Java

From https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :

staticjava.lang.String APPLICATION_ATOM_XML             "application/atom+xml"
staticMediaType        APPLICATION_ATOM_XML_TYPE        "application/atom+xml"
staticjava.lang.String APPLICATION_FORM_URLENCODED      "application/x-www-form-urlencoded"
staticMediaType        APPLICATION_FORM_URLENCODED_TYPE "application/x-www-form-urlencoded"
staticjava.lang.String APPLICATION_JSON                 "application/json"
staticMediaType        APPLICATION_JSON_TYPE            "application/json"
staticjava.lang.String APPLICATION_OCTET_STREAM         "application/octet-stream"
staticMediaType        APPLICATION_OCTET_STREAM_TYPE    "application/octet-stream"
staticjava.lang.String APPLICATION_SVG_XML              "application/svg+xml"
staticMediaType        APPLICATION_SVG_XML_TYPE         "application/svg+xml"
staticjava.lang.String APPLICATION_XHTML_XML            "application/xhtml+xml"
staticMediaType        APPLICATION_XHTML_XML_TYPE       "application/xhtml+xml"
staticjava.lang.String APPLICATION_XML                  "application/xml"
staticMediaType        APPLICATION_XML_TYPE             "application/xml"
staticjava.lang.String MEDIA_TYPE_WILDCARD              The value of a type or subtype wildcard: "*"
staticjava.lang.String MULTIPART_FORM_DATA              "multipart/form-data"
staticMediaType        MULTIPART_FORM_DATA_TYPE         "multipart/form-data"
staticjava.lang.String TEXT_HTML                        "text/html"
staticMediaType        TEXT_HTML_TYPE                   "text/html"
staticjava.lang.String TEXT_PLAIN                       "text/plain"
staticMediaType        TEXT_PLAIN_TYPE                  "text/plain"
staticjava.lang.String TEXT_XML                         "text/xml"
staticMediaType        TEXT_XML_TYPE                    "text/xml"
staticjava.lang.String WILDCARD                         "*/*"
staticMediaType        WILDCARD_TYPE                    "*/*"

Solution 2 - Java

If you are using Spring Framework then there is a MediaType class for common content types:

MediaType.TEXT_HTML 
MediaType.TEXT_PLAIN 
MediaType.TEXT_XML 
MediaType.APPLICATION_JSON 
MediaType.IMAGE_JPEG 
...

Solution 3 - Java

Guava library

We have a Guava class for this: com.google.common.net.MediaType.

It was released with Guava 12 as stated in the source code and in Issue 823. Sources are available, too.

Solution 4 - Java

There is now also the class org.apache.http.entity.ContentType from package org.apache.httpcomponents.httpcore, starting from 4.2 up.

Solution 5 - Java

javax.ws.rs.core.MediaType from JAX-RS

Solution 6 - Java

Java 7 to the rescue!

You can either pass the file or the file name and it will return the MIME type.

String mimeType = MimetypesFileTypeMap
    .getDefaultFileTypeMap()
    .getContentType(attachment.getFileName());

http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html

Solution 7 - Java

There's also a MediaType class in androidannotations in case you want to use with android! See here.

Solution 8 - Java

As pointed out by an answer above, you can use javax.ws.rs.core.MediaType which has the required constants.

I also wanted to share a really cool and handy link which I found that gives a reference to all the Javax constants in one place - https://docs.oracle.com/javaee/7/api/constant-values.html.

Solution 9 - Java

If you're on android you have multiple choices, where only the first is a kind of "enum":

For example

@Override
public String getType(Uri uri) {
    return URLConnection.getFileNameMap().getContentTypeFor(
            uri.getLastPathSegment());
}

Solution 10 - Java

I solved this with a static class:

@SuppressWarnings("serial")
public class MimeTypes {

	private static final HashMap<String, String> mimeTypes;

	static {
		mimeTypes = new HashMap<String, String>() {
			{
				put(".323", "text/h323");
				put(".3g2", "video/3gpp2");
				put(".3gp", "video/3gpp");
				put(".3gp2", "video/3gpp2");
				put(".3gpp", "video/3gpp");
				put(".7z", "application/x-7z-compressed");
				put(".aa", "audio/audible");
				put(".AAC", "audio/aac");
				put(".aaf", "application/octet-stream");
				put(".aax", "audio/vnd.audible.aax");
				put(".ac3", "audio/ac3");
				put(".aca", "application/octet-stream");
				put(".accda", "application/msaccess.addin");
				put(".accdb", "application/msaccess");
				put(".accdc", "application/msaccess.cab");
				put(".accde", "application/msaccess");
				put(".accdr", "application/msaccess.runtime");
				put(".accdt", "application/msaccess");
				put(".accdw", "application/msaccess.webapplication");
				put(".accft", "application/msaccess.ftemplate");
				put(".acx", "application/internet-property-stream");
				put(".AddIn", "text/xml");
				put(".ade", "application/msaccess");
				put(".adobebridge", "application/x-bridge-url");
				put(".adp", "application/msaccess");
				put(".ADT", "audio/vnd.dlna.adts");
				put(".ADTS", "audio/aac");
				put(".afm", "application/octet-stream");
				put(".ai", "application/postscript");
				put(".aif", "audio/x-aiff");
				put(".aifc", "audio/aiff");
				put(".aiff", "audio/aiff");
				put(".air", "application/vnd.adobe.air-application-installer-package+zip");
				put(".amc", "application/x-mpeg");
				put(".application", "application/x-ms-application");
				put(".art", "image/x-jg");
				put(".asa", "application/xml");
				put(".asax", "application/xml");
				put(".ascx", "application/xml");
				put(".asd", "application/octet-stream");
				put(".asf", "video/x-ms-asf");
				put(".ashx", "application/xml");
				put(".asi", "application/octet-stream");
				put(".asm", "text/plain");
				put(".asmx", "application/xml");
				put(".aspx", "application/xml");
				put(".asr", "video/x-ms-asf");
				put(".asx", "video/x-ms-asf");
				put(".atom", "application/atom+xml");
				put(".au", "audio/basic");
				put(".avi", "video/x-msvideo");
				put(".axs", "application/olescript");
				put(".bas", "text/plain");
				put(".bcpio", "application/x-bcpio");
				put(".bin", "application/octet-stream");
				put(".bmp", "image/bmp");
				put(".c", "text/plain");
				put(".cab", "application/octet-stream");
				put(".caf", "audio/x-caf");
				put(".calx", "application/vnd.ms-office.calx");
				put(".cat", "application/vnd.ms-pki.seccat");
				put(".cc", "text/plain");
				put(".cd", "text/plain");
				put(".cdda", "audio/aiff");
				put(".cdf", "application/x-cdf");
				put(".cer", "application/x-x509-ca-cert");
				put(".chm", "application/octet-stream");
				put(".class", "application/x-java-applet");
				put(".clp", "application/x-msclip");
				put(".cmx", "image/x-cmx");
				put(".cnf", "text/plain");
				put(".cod", "image/cis-cod");
				put(".config", "application/xml");
				put(".contact", "text/x-ms-contact");
				put(".coverage", "application/xml");
				put(".cpio", "application/x-cpio");
				put(".cpp", "text/plain");
				put(".crd", "application/x-mscardfile");
				put(".crl", "application/pkix-crl");
				put(".crt", "application/x-x509-ca-cert");
				put(".cs", "text/plain");
				put(".csdproj", "text/plain");
				put(".csh", "application/x-csh");
				put(".csproj", "text/plain");
				put(".css", "text/css");
				put(".csv", "text/csv");
				put(".cur", "application/octet-stream");
				put(".cxx", "text/plain");
				put(".dat", "application/octet-stream");
				put(".datasource", "application/xml");
				put(".dbproj", "text/plain");
				put(".dcr", "application/x-director");
				put(".def", "text/plain");
				put(".deploy", "application/octet-stream");
				put(".der", "application/x-x509-ca-cert");
				put(".dgml", "application/xml");
				put(".dib", "image/bmp");
				put(".dif", "video/x-dv");
				put(".dir", "application/x-director");
				put(".disco", "text/xml");
				put(".dll", "application/x-msdownload");
				put(".dll.config", "text/xml");
				put(".dlm", "text/dlm");
				put(".doc", "application/msword");
				put(".docm", "application/vnd.ms-word.document.macroEnabled.12");
				put(".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
				put(".dot", "application/msword");
				put(".dotm", "application/vnd.ms-word.template.macroEnabled.12");
				put(".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template");
				put(".dsp", "application/octet-stream");
				put(".dsw", "text/plain");
				put(".dtd", "text/xml");
				put(".dtsConfig", "text/xml");
				put(".dv", "video/x-dv");
				put(".dvi", "application/x-dvi");
				put(".dwf", "drawing/x-dwf");
				put(".dwp", "application/octet-stream");
				put(".dxr", "application/x-director");
				put(".eml", "message/rfc822");
				put(".emz", "application/octet-stream");
				put(".eot", "application/octet-stream");
				put(".eps", "application/postscript");
				put(".etl", "application/etl");
				put(".etx", "text/x-setext");
				put(".evy", "application/envoy");
				put(".exe", "application/octet-stream");
				put(".exe.config", "text/xml");
				put(".fdf", "application/vnd.fdf");
				put(".fif", "application/fractals");
				put(".filters", "Application/xml");
				put(".fla", "application/octet-stream");
				put(".flr", "x-world/x-vrml");
				put(".flv", "video/x-flv");
				put(".fsscript", "application/fsharp-script");
				put(".fsx", "application/fsharp-script");
				put(".generictest", "application/xml");
				put(".gif", "image/gif");
				put(".group", "text/x-ms-group");
				put(".gsm", "audio/x-gsm");
				put(".gtar", "application/x-gtar");
				put(".gz", "application/x-gzip");
				put(".h", "text/plain");
				put(".hdf", "application/x-hdf");
				put(".hdml", "text/x-hdml");
				put(".hhc", "application/x-oleobject");
				put(".hhk", "application/octet-stream");
				put(".hhp", "application/octet-stream");
				put(".hlp", "application/winhlp");
				put(".hpp", "text/plain");
				put(".hqx", "application/mac-binhex40");
				put(".hta", "application/hta");
				put(".htc", "text/x-component");
				put(".htm", "text/html");
				put(".html", "text/html");
				put(".htt", "text/webviewhtml");
				put(".hxa", "application/xml");
				put(".hxc", "application/xml");
				put(".hxd", "application/octet-stream");
				put(".hxe", "application/xml");
				put(".hxf", "application/xml");
				put(".hxh", "application/octet-stream");
				put(".hxi", "application/octet-stream");
				put(".hxk", "application/xml");
				put(".hxq", "application/octet-stream");
				put(".hxr", "application/octet-stream");
				put(".hxs", "application/octet-stream");
				put(".hxt", "text/html");
				put(".hxv", "application/xml");
				put(".hxw", "application/octet-stream");
				put(".hxx", "text/plain");
				put(".i", "text/plain");
				put(".ico", "image/x-icon");
				put(".ics", "application/octet-stream");
				put(".idl", "text/plain");
				put(".ief", "image/ief");
				put(".iii", "application/x-iphone");
				put(".inc", "text/plain");
				put(".inf", "application/octet-stream");
				put(".inl", "text/plain");
				put(".ins", "application/x-internet-signup");
				put(".ipa", "application/x-itunes-ipa");
				put(".ipg", "application/x-itunes-ipg");
				put(".ipproj", "text/plain");
				put(".ipsw", "application/x-itunes-ipsw");
				put(".iqy", "text/x-ms-iqy");
				put(".isp", "application/x-internet-signup");
				put(".ite", "application/x-itunes-ite");
				put(".itlp", "application/x-itunes-itlp");
				put(".itms", "application/x-itunes-itms");
				put(".itpc", "application/x-itunes-itpc");
				put(".IVF", "video/x-ivf");
				put(".jar", "application/java-archive");
				put(".java", "application/octet-stream");
				put(".jck", "application/liquidmotion");
				put(".jcz", "application/liquidmotion");
				put(".jfif", "image/pjpeg");
				put(".jnlp", "application/x-java-jnlp-file");
				put(".jpb", "application/octet-stream");
				put(".jpe", "image/jpeg");
				put(".jpeg", "image/jpeg");
				put(".jpg", "image/jpeg");
				put(".js", "application/x-javascript");
				put(".json", "application/json");
				put(".jsx", "text/jscript");
				put(".jsxbin", "text/plain");
				put(".latex", "application/x-latex");
				put(".library-ms", "application/windows-library+xml");
				put(".lit", "application/x-ms-reader");
				put(".loadtest", "application/xml");
				put(".lpk", "application/octet-stream");
				put(".lsf", "video/x-la-asf");
				put(".lst", "text/plain");
				put(".lsx", "video/x-la-asf");
				put(".lzh", "application/octet-stream");
				put(".m13", "application/x-msmediaview");
				put(".m14", "application/x-msmediaview");
				put(".m1v", "video/mpeg");
				put(".m2t", "video/vnd.dlna.mpeg-tts");
				put(".m2ts", "video/vnd.dlna.mpeg-tts");
				put(".m2v", "video/mpeg");
				put(".m3u", "audio/x-mpegurl");
				put(".m3u8", "audio/x-mpegurl");
				put(".m4a", "audio/m4a");
				put(".m4b", "audio/m4b");
				put(".m4p", "audio/m4p");
				put(".m4r", "audio/x-m4r");
				put(".m4v", "video/x-m4v");
				put(".mac", "image/x-macpaint");
				put(".mak", "text/plain");
				put(".man", "application/x-troff-man");
				put(".manifest", "application/x-ms-manifest");
				put(".map", "text/plain");
				put(".master", "application/xml");
				put(".mda", "application/msaccess");
				put(".mdb", "application/x-msaccess");
				put(".mde", "application/msaccess");
				put(".mdp", "application/octet-stream");
				put(".me", "application/x-troff-me");
				put(".mfp", "application/x-shockwave-flash");
				put(".mht", "message/rfc822");
				put(".mhtml", "message/rfc822");
				put(".mid", "audio/mid");
				put(".midi", "audio/mid");
				put(".mix", "application/octet-stream");
				put(".mk", "text/plain");
				put(".mmf", "application/x-smaf");
				put(".mno", "text/xml");
				put(".mny", "application/x-msmoney");
				put(".mod", "video/mpeg");
				put(".mov", "video/quicktime");
				put(".movie", "video/x-sgi-movie");
				put(".mp2", "video/mpeg");
				put(".mp2v", "video/mpeg");
				put(".mp3", "audio/mpeg");
				put(".mp4", "video/mp4");
				put(".mp4v", "video/mp4");
				put(".mpa", "video/mpeg");
				put(".mpe", "video/mpeg");
				put(".mpeg", "video/mpeg");
				put(".mpf", "application/vnd.ms-mediapackage");
				put(".mpg", "video/mpeg");
				put(".mpp", "application/vnd.ms-project");
				put(".mpv2", "video/mpeg");
				put(".mqv", "video/quicktime");
				put(".ms", "application/x-troff-ms");
				put(".msi", "application/octet-stream");
				put(".mso", "application/octet-stream");
				put(".mts", "video/vnd.dlna.mpeg-tts");
				put(".mtx", "application/xml");
				put(".mvb", "application/x-msmediaview");
				put(".mvc", "application/x-miva-compiled");
				put(".mxp", "application/x-mmxp");
				put(".nc", "application/x-netcdf");
				put(".nsc", "video/x-ms-asf");
				put(".nws", "message/rfc822");
				put(".ocx", "application/octet-stream");
				put(".oda", "application/oda");
				put(".odc", "text/x-ms-odc");
				put(".odh", "text/plain");
				put(".odl", "text/plain");
				put(".odp", "application/vnd.oasis.opendocument.presentation");
				put(".ods", "application/oleobject");
				put(".odt", "application/vnd.oasis.opendocument.text");
				put(".one", "application/onenote");
				put(".onea", "application/onenote");
				put(".onepkg", "application/onenote");
				put(".onetmp", "application/onenote");
				put(".onetoc", "application/onenote");
				put(".onetoc2", "application/onenote");
				put(".orderedtest", "application/xml");
				put(".osdx", "application/opensearchdescription+xml");
				put(".p10", "application/pkcs10");
				put(".p12", "application/x-pkcs12");
				put(".p7b", "application/x-pkcs7-certificates");
				put(".p7c", "application/pkcs7-mime");
				put(".p7m", "application/pkcs7-mime");
				put(".p7r", "application/x-pkcs7-certreqresp");
				put(".p7s", "application/pkcs7-signature");
				put(".pbm", "image/x-portable-bitmap");
				put(".pcast", "application/x-podcast");
				put(".pct", "image/pict");
				put(".pcx", "application/octet-stream");
				put(".pcz", "application/octet-stream");
				put(".pdf", "application/pdf");
				put(".pfb", "application/octet-stream");
				put(".pfm", "application/octet-stream");
				put(".pfx", "application/x-pkcs12");
				put(".pgm", "image/x-portable-graymap");
				put(".pic", "image/pict");
				put(".pict", "image/pict");
				put(".pkgdef", "text/plain");
				put(".pkgundef", "text/plain");
				put(".pko", "application/vnd.ms-pki.pko");
				put(".pls", "audio/scpls");
				put(".pma", "application/x-perfmon");
				put(".pmc", "application/x-perfmon");
				put(".pml", "application/x-perfmon");
				put(".pmr", "application/x-perfmon");
				put(".pmw", "application/x-perfmon");
				put(".png", "image/png");
				put(".pnm", "image/x-portable-anymap");
				put(".pnt", "image/x-macpaint");
				put(".pntg", "image/x-macpaint");
				put(".pnz", "image/png");
				put(".pot", "application/vnd.ms-powerpoint");
				put(".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12");
				put(".potx", "application/vnd.openxmlformats-officedocument.presentationml.template");
				put(".ppa", "application/vnd.ms-powerpoint");
				put(".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12");
				put(".ppm", "image/x-portable-pixmap");
				put(".pps", "application/vnd.ms-powerpoint");
				put(".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12");
				put(".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow");
				put(".ppt", "application/vnd.ms-powerpoint");
				put(".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12");
				put(".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
				put(".prf", "application/pics-rules");
				put(".prm", "application/octet-stream");
				put(".prx", "application/octet-stream");
				put(".ps", "application/postscript");
				put(".psc1", "application/PowerShell");
				put(".psd", "application/octet-stream");
				put(".psess", "application/xml");
				put(".psm", "application/octet-stream");
				put(".psp", "application/octet-stream");
				put(".pub", "application/x-mspublisher");
				put(".pwz", "application/vnd.ms-powerpoint");
				put(".qht", "text/x-html-insertion");
				put(".qhtm", "text/x-html-insertion");
				put(".qt", "video/quicktime");
				put(".qti", "image/x-quicktime");
				put(".qtif", "image/x-quicktime");
				put(".qtl", "application/x-quicktimeplayer");
				put(".qxd", "application/octet-stream");
				put(".ra", "audio/x-pn-realaudio");
				put(".ram", "audio/x-pn-realaudio");
				put(".rar", "application/octet-stream");
				put(".ras", "image/x-cmu-raster");
				put(".rat", "application/rat-file");
				put(".rc", "text/plain");
				put(".rc2", "text/plain");
				put(".rct", "text/plain");
				put(".rdlc", "application/xml");
				put(".resx", "application/xml");
				put(".rf", "image/vnd.rn-realflash");
				put(".rgb", "image/x-rgb");
				put(".rgs", "text/plain");
				put(".rm", "application/vnd.rn-realmedia");
				put(".rmi", "audio/mid");
				put(".rmp", "application/vnd.rn-rn_music_package");
				put(".roff", "application/x-troff");
				put(".rpm", "audio/x-pn-realaudio-plugin");
				put(".rqy", "text/x-ms-rqy");
				put(".rtf", "application/rtf");
				put(".rtx", "text/richtext");
				put(".ruleset", "application/xml");
				put(".s", "text/plain");
				put(".safariextz", "application/x-safari-safariextz");
				put(".scd", "application/x-msschedule");
				put(".sct", "text/scriptlet");
				put(".sd2", "audio/x-sd2");
				put(".sdp", "application/sdp");
				put(".sea", "application/octet-stream");
				put(".searchConnector-ms", "application/windows-search-connector+xml");
				put(".setpay", "application/set-payment-initiation");
				put(".setreg", "application/set-registration-initiation");
				put(".settings", "application/xml");
				put(".sgimb", "application/x-sgimb");
				put(".sgml", "text/sgml");
				put(".sh", "application/x-sh");
				put(".shar", "application/x-shar");
				put(".shtml", "text/html");
				put(".sit", "application/x-stuffit");
				put(".sitemap", "application/xml");
				put(".skin", "application/xml");
				put(".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12");
				put(".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide");
				put(".slk", "application/vnd.ms-excel");
				put(".sln", "text/plain");
				put(".slupkg-ms", "application/x-ms-license");
				put(".smd", "audio/x-smd");
				put(".smi", "application/octet-stream");
				put(".smx", "audio/x-smd");
				put(".smz", "audio/x-smd");
				put(".snd", "audio/basic");
				put(".snippet", "application/xml");
				put(".snp", "application/octet-stream");
				put(".sol", "text/plain");
				put(".sor", "text/plain");
				put(".spc", "application/x-pkcs7-certificates");
				put(".spl", "application/futuresplash");
				put(".src", "application/x-wais-source");
				put(".srf", "text/plain");
				put(".SSISDeploymentManifest", "text/xml");
				put(".ssm", "application/streamingmedia");
				put(".sst", "application/vnd.ms-pki.certstore");
				put(".stl", "application/vnd.ms-pki.stl");
				put(".sv4cpio", "application/x-sv4cpio");
				put(".sv4crc", "application/x-sv4crc");
				put(".svc", "application/xml");
				put(".swf", "application/x-shockwave-flash");
				put(".t", "application/x-troff");
				put(".tar", "application/x-tar");
				put(".tcl", "application/x-tcl");
				put(".testrunconfig", "application/xml");
				put(".testsettings", "application/xml");
				put(".tex", "application/x-tex");
				put(".texi", "application/x-texinfo");
				put(".texinfo", "application/x-texinfo");
				put(".tgz", "application/x-compressed");
				put(".thmx", "application/vnd.ms-officetheme");
				put(".thn", "application/octet-stream");
				put(".tif", "image/tiff");
				put(".tiff", "image/tiff");
				put(".tlh", "text/plain");
				put(".tli", "text/plain");
				put(".toc", "application/octet-stream");
				put(".tr", "application/x-troff");
				put(".trm", "application/x-msterminal");
				put(".trx", "application/xml");
				put(".ts", "video/vnd.dlna.mpeg-tts");
				put(".tsv", "text/tab-separated-values");
				put(".ttf", "application/octet-stream");
				put(".tts", "video/vnd.dlna.mpeg-tts");
				put(".txt", "text/plain");
				put(".u32", "application/octet-stream");
				put(".uls", "text/iuls");
				put(".user", "text/plain");
				put(".ustar", "application/x-ustar");
				put(".vb", "text/plain");
				put(".vbdproj", "text/plain");
				put(".vbk", "video/mpeg");
				put(".vbproj", "text/plain");
				put(".vbs", "text/vbscript");
				put(".vcf", "text/x-vcard");
				put(".vcproj", "Application/xml");
				put(".vcs", "text/plain");
				put(".vcxproj", "Application/xml");
				put(".vddproj", "text/plain");
				put(".vdp", "text/plain");
				put(".vdproj", "text/plain");
				put(".vdx", "application/vnd.ms-visio.viewer");
				put(".vml", "text/xml");
				put(".vscontent", "application/xml");
				put(".vsct", "text/xml");
				put(".vsd", "application/vnd.visio");
				put(".vsi", "application/ms-vsi");
				put(".vsix", "application/vsix");
				put(".vsixlangpack", "text/xml");
				put(".vsixmanifest", "text/xml");
				put(".vsmdi", "application/xml");
				put(".vspscc", "text/plain");
				put(".vss", "application/vnd.visio");
				put(".vsscc", "text/plain");
				put(".vssettings", "text/xml");
				put(".vssscc", "text/plain");
				put(".vst", "application/vnd.visio");
				put(".vstemplate", "text/xml");
				put(".vsto", "application/x-ms-vsto");
				put(".vsw", "application/vnd.visio");
				put(".vsx", "application/vnd.visio");
				put(".vtx", "application/vnd.visio");
				put(".wav", "audio/wav");
				put(".wave", "audio/wav");
				put(".wax", "audio/x-ms-wax");
				put(".wbk", "application/msword");
				put(".wbmp", "image/vnd.wap.wbmp");
				put(".wcm", "application/vnd.ms-works");
				put(".wdb", "application/vnd.ms-works");
				put(".wdp", "image/vnd.ms-photo");
				put(".webarchive", "application/x-safari-webarchive");
				put(".webtest", "application/xml");
				put(".wiq", "application/xml");
				put(".wiz", "application/msword");
				put(".wks", "application/vnd.ms-works");
				put(".WLMP", "application/wlmoviemaker");
				put(".wlpginstall", "application/x-wlpg-detect");
				put(".wlpginstall3", "application/x-wlpg3-detect");
				put(".wm", "video/x-ms-wm");
				put(".wma", "audio/x-ms-wma");
				put(".wmd", "application/x-ms-wmd");
				put(".wmf", "application/x-msmetafile");
				put(".wml", "text/vnd.wap.wml");
				put(".wmlc", "application/vnd.wap.wmlc");
				put(".wmls", "text/vnd.wap.wmlscript");
				put(".wmlsc", "application/vnd.wap.wmlscriptc");
				put(".wmp", "video/x-ms-wmp");
				put(".wmv", "video/x-ms-wmv");
				put(".wmx", "video/x-ms-wmx");
				put(".wmz", "application/x-ms-wmz");
				put(".wpl", "application/vnd.ms-wpl");
				put(".wps", "application/vnd.ms-works");
				put(".wri", "application/x-mswrite");
				put(".wrl", "x-world/x-vrml");
				put(".wrz", "x-world/x-vrml");
				put(".wsc", "text/scriptlet");
				put(".wsdl", "text/xml");
				put(".wvx", "video/x-ms-wvx");
				put(".x", "application/directx");
				put(".xaf", "x-world/x-vrml");
				put(".xaml", "application/xaml+xml");
				put(".xap", "application/x-silverlight-app");
				put(".xbap", "application/x-ms-xbap");
				put(".xbm", "image/x-xbitmap");
				put(".xdr", "text/plain");
				put(".xht", "application/xhtml+xml");
				put(".xhtml", "application/xhtml+xml");
				put(".xla", "application/vnd.ms-excel");
				put(".xlam", "application/vnd.ms-excel.addin.macroEnabled.12");
				put(".xlc", "application/vnd.ms-excel");
				put(".xld", "application/vnd.ms-excel");
				put(".xlk", "application/vnd.ms-excel");
				put(".xll", "application/vnd.ms-excel");
				put(".xlm", "application/vnd.ms-excel");
				put(".xls", "application/vnd.ms-excel");
				put(".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12");
				put(".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12");
				put(".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
				put(".xlt", "application/vnd.ms-excel");
				put(".xltm", "application/vnd.ms-excel.template.macroEnabled.12");
				put(".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template");
				put(".xlw", "application/vnd.ms-excel");
				put(".xml", "text/xml");
				put(".xmta", "application/xml");
				put(".xof", "x-world/x-vrml");
				put(".XOML", "text/plain");
				put(".xpm", "image/x-xpixmap");
				put(".xps", "application/vnd.ms-xpsdocument");
				put(".xrm-ms", "text/xml");
				put(".xsc", "application/xml");
				put(".xsd", "text/xml");
				put(".xsf", "text/xml");
				put(".xsl", "text/xml");
				put(".xslt", "text/xml");
				put(".xsn", "application/octet-stream");
				put(".xss", "application/xml");
				put(".xtp", "application/octet-stream");
				put(".xwd", "image/x-xwindowdump");
				put(".z", "application/x-compress");
				put(".zip", "application/x-zip-compressed");
			}
		};
	}

	public static String getMimeType(String extension) {
		if (extension == null) {
			return null;
		}

		if (!extension.startsWith(".")) {
			extension = "." + extension.toLowerCase(Locale.getDefault());
		}

		String mime = mimeTypes.get(extension);

		return mime != null ? mime : "application/octet-stream";
	}
}

Solution 11 - Java

As already posted in earlier answer, most common MIME types are configured in a webserver. For example in tomcat conf/ we have web.xml with following MIME configured:

   <mime-mapping>
      <extension>abs</extension>
      <mime-type>audio/x-mpeg</mime-type>
   </mime-mapping>
   <mime-mapping>
      <extension>ai</extension>
      <mime-type>application/postscript</mime-type>
   </mime-mapping>
   <mime-mapping>
      <extension>aif</extension>
      <mime-type>audio/x-aiff</mime-type>
   </mime-mapping>
...

Create a startup listener that kicks in when web app is started and parses this XML file and creates the ENUMS for you and binds it to servlet context for sharing downstream.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionBlessed GeekView Question on Stackoverflow
Solution 1 - JavaRay TayekView Answer on Stackoverflow
Solution 2 - JavaAndrejsView Answer on Stackoverflow
Solution 3 - JavaFabian BarneyView Answer on Stackoverflow
Solution 4 - JavaOverflowView Answer on Stackoverflow
Solution 5 - JavaFrançois WauquierView Answer on Stackoverflow
Solution 6 - JavaMaxView Answer on Stackoverflow
Solution 7 - Javasakis kaliakoudasView Answer on Stackoverflow
Solution 8 - JavaAnuragView Answer on Stackoverflow
Solution 9 - JavaschnattererView Answer on Stackoverflow
Solution 10 - JavaTrboyView Answer on Stackoverflow
Solution 11 - JavaBimalesh JhaView Answer on Stackoverflow