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 ...
}
This question is related to
java
gwt
mime-types
content-type
guava
There's also a MediaType
class in androidannotations in case you want to use with android! See here.
There is now also the class org.apache.http.entity.ContentType
from package org.apache.httpcomponents.httpcore
, starting from 4.2 up.
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";
}
}
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
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.
If you're on android you have multiple choices, where only the first is a kind of "enum":
HTTP
(which has been deprecated in API 22), for exampleHTTP.PLAIN_TEXT_TYPE
orMimeTypeMap
, for examplefinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
FileProvider.getType()
.URLConnection
that provides the following methods:
For example
@Override
public String getType(Uri uri) {
return URLConnection.getFileNameMap().getContentTypeFor(
uri.getLastPathSegment());
}
javax.ws.rs.core.MediaType
from JAX-RS
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
...
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 "*/*"
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.
Source: Stackoverflow.com