/*
Copyright (C) 2016 maik.jablonski@jease.org
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package jfix.util;
import java.util.HashMap;
import java.util.Map;
public class MimeTypes {
private static Map<String, String> mimeTypes = new HashMap<>();
static {
mimeTypes.put("323","text/h323");
mimeTypes.put("3dm","x-world/x-3dmf");
mimeTypes.put("3dmf","x-world/x-3dmf");
mimeTypes.put("a","application/octet-stream");
mimeTypes.put("aab","application/x-authorware-bin");
mimeTypes.put("aam","application/x-authorware-mimeTypes");
mimeTypes.put("aas","application/x-authorware-seg");
mimeTypes.put("abc","text/vndabc");
mimeTypes.put("acgi","text/html");
mimeTypes.put("acx","application/internet-property-stream");
mimeTypes.put("afl","video/animaflex");
mimeTypes.put("ai","application/postscript");
mimeTypes.put("aif","audio/x-aiff,audio/aiff");
mimeTypes.put("aifc","audio/x-aiff,audio/aiff");
mimeTypes.put("aiff","audio/x-aiff,audio/aiff");
mimeTypes.put("aim","application/x-aim");
mimeTypes.put("aip","text/x-audiosoft-intra");
mimeTypes.put("ani","application/x-navi-animation");
mimeTypes.put("aos","application/x-nokia-9000-communicator-add-on-software");
mimeTypes.put("aps","application/mime");
mimeTypes.put("arc","application/octet-stream");
mimeTypes.put("arj","application/arj,application/octet-stream");
mimeTypes.put("art","image/x-jg");
mimeTypes.put("asc","text/plain");
mimeTypes.put("asf","video/x-ms-asf");
mimeTypes.put("asm","text/x-asm");
mimeTypes.put("asp","text/asp");
mimeTypes.put("asr","video/x-ms-asf");
mimeTypes.put("asx","application/x-mplayer2,video/x-ms-asf,video/x-ms-asf-plugin");
mimeTypes.put("au","audio/basic,audio/x-au");
mimeTypes.put("avi","video/x-msvideo,application/x-troff-msvideo,video/avi,video/msvideo");
mimeTypes.put("avs","video/avs-video");
mimeTypes.put("axs","application/olescript");
mimeTypes.put("bas","text/plain");
mimeTypes.put("bat","application/bat,application/x-bat,application/x-msdos-program,application/textedit,application/octet-stream");
mimeTypes.put("bcpio","application/x-bcpio");
mimeTypes.put("bin","application/octet-stream,application/mac-binary,application/macbinary,application/x-binary,application/x-macbinary");
mimeTypes.put("bm","image/bmp");
mimeTypes.put("bmp","image/bmp,image/x-windows-bmp");
mimeTypes.put("boo","application/book");
mimeTypes.put("book","application/book");
mimeTypes.put("boz","application/x-bzip2");
mimeTypes.put("bsh","application/x-bsh");
mimeTypes.put("bz","application/x-bzip");
mimeTypes.put("bz2","application/x-bzip2");
mimeTypes.put("c","text/plain,text/x-c");
mimeTypes.put("C","application/x-cplusplus,text/x-c++src,text/plain");
mimeTypes.put("c++","application/x-cplusplus,text/x-c++src,text/plain");
mimeTypes.put("cab","application/vnd.ms-cab-compressed,application/cab,application/x-compress,application/x-compressed,zz-application/zz-winassoc-cab");
mimeTypes.put("cat","application/vndms-pkiseccat");
mimeTypes.put("cc","text/plain,text/x-c");
mimeTypes.put("ccad","application/clariscad");
mimeTypes.put("cco","application/x-cocoa");
mimeTypes.put("cdf","application/x-netcdf,application/cdf,application/x-cdf");
mimeTypes.put("cer","application/pkix-cert,application/x-x509-ca-cert");
mimeTypes.put("cha","application/x-chat");
mimeTypes.put("chat","application/x-chat");
mimeTypes.put("class","application/octet-stream,application/java,application/java-byte-code,application/x-java-class");
mimeTypes.put("clp","application/x-msclip");
mimeTypes.put("cmx","image/x-cmx");
mimeTypes.put("cod","image/cis-cod");
mimeTypes.put("com","application/octet-stream,text/plain");
mimeTypes.put("conf","text/plain");
mimeTypes.put("cpio","application/x-cpio");
mimeTypes.put("cpp","text/x-c");
mimeTypes.put("cpt","application/mac-compactpro,application/x-compactpro,application/x-cpt");
mimeTypes.put("crd","application/x-mscardfile");
mimeTypes.put("crl","application/pkcs-crl,application/pkix-crl");
mimeTypes.put("crt","application/pkix-cert,application/x-x509-ca-cert,application/x-x509-user-cert");
mimeTypes.put("crx","application/x-chrome-extension");
mimeTypes.put("csh","application/x-csh,text/x-scriptcsh");
mimeTypes.put("css","text/css,application/x-pointplus");
mimeTypes.put("csv","text/csv");
mimeTypes.put("cxx","text/plain");
mimeTypes.put("dcr","application/x-director");
mimeTypes.put("deepv","application/x-deepv");
mimeTypes.put("def","text/plain");
mimeTypes.put("der","application/x-x509-ca-cert");
mimeTypes.put("dif","video/x-dv");
mimeTypes.put("dir","application/x-director");
mimeTypes.put("dl","video/dl,video/x-dl");
mimeTypes.put("dll","application/x-msdownload");
mimeTypes.put("dms","application/octet-stream");
mimeTypes.put("doc","application/msword");
mimeTypes.put("docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document");
mimeTypes.put("dot","application/msword");
mimeTypes.put("dp","application/commonground");
mimeTypes.put("drw","application/drafting");
mimeTypes.put("dump","application/octet-stream");
mimeTypes.put("dv","video/x-dv");
mimeTypes.put("dvi","application/x-dvi");
mimeTypes.put("dwf","drawing/x-dwf,model/vnddwf");
mimeTypes.put("dwg","application/acad,image/vnddwg,image/x-dwg");
mimeTypes.put("dxf","application/dxf,image/vnddwg,image/x-dwg");
mimeTypes.put("dxr","application/x-director");
mimeTypes.put("el","text/x-scriptelisp");
mimeTypes.put("elc","application/x-bytecodeelisp,application/x-elc");
mimeTypes.put("env","application/x-envoy");
mimeTypes.put("eps","application/postscript");
mimeTypes.put("es","application/x-esrehber");
mimeTypes.put("etx","text/x-setext");
mimeTypes.put("evy","application/envoy,application/x-envoy");
mimeTypes.put("exe","application/octet-stream");
mimeTypes.put("ez","application/andrew-inset");
mimeTypes.put("f","text/plain,text/x-fortran");
mimeTypes.put("f77","text/x-fortran");
mimeTypes.put("f90","text/plain,text/x-fortran");
mimeTypes.put("fdf","application/vndfdf");
mimeTypes.put("fif","application/fractals,image/fif");
mimeTypes.put("fli","video/x-fli,video/fli");
mimeTypes.put("flo","image/florian");
mimeTypes.put("flr","x-world/x-vrml");
mimeTypes.put("flv","video/x-flv");
mimeTypes.put("flx","text/vndfmiflexstor");
mimeTypes.put("fmf","video/x-atomic3d-feature");
mimeTypes.put("for","text/plain,text/x-fortran");
mimeTypes.put("fpx","image/vndfpx,image/vndnet-fpx");
mimeTypes.put("frl","application/freeloader");
mimeTypes.put("funk","audio/make");
mimeTypes.put("g","text/plain");
mimeTypes.put("g3","image/g3fax");
mimeTypes.put("gif","image/gif");
mimeTypes.put("gl","video/gl,video/x-gl");
mimeTypes.put("gsd","audio/x-gsm");
mimeTypes.put("gsm","audio/x-gsm");
mimeTypes.put("gsp","application/x-gsp");
mimeTypes.put("gss","application/x-gss");
mimeTypes.put("gtar","application/x-gtar");
mimeTypes.put("gz","application/x-gzip,application/x-compressed");
mimeTypes.put("gzip","application/x-gzip,multipart/x-gzip");
mimeTypes.put("h","text/plain,text/x-h");
mimeTypes.put("h++","application/x-cplusplus,text/x-c++src,text/plain");
mimeTypes.put("H","application/x-cplusplus,text/x-c++src,text/plain");
mimeTypes.put("hdf","application/x-hdf");
mimeTypes.put("help","application/x-helpfile");
mimeTypes.put("hgl","application/vndhp-hpgl");
mimeTypes.put("hh","text/plain,text/x-h");
mimeTypes.put("hlb","text/x-script");
mimeTypes.put("hlp","application/hlp,application/x-helpfile,application/x-winhelp,application/winhlp");
mimeTypes.put("hpg","application/vndhp-hpgl");
mimeTypes.put("hpgl","application/vndhp-hpgl");
mimeTypes.put("hpp","application/x-cplusplus,text/x-c++src,text/plain");
mimeTypes.put("hqx","application/mac-binhex40,application/binhex,application/binhex4,application/mac-binhex,application/x-binhex40,application/x-mac-binhex40");
mimeTypes.put("hta","application/hta");
mimeTypes.put("htc","text/x-component");
mimeTypes.put("htm","text/html");
mimeTypes.put("html","text/html");
mimeTypes.put("htmls","text/html");
mimeTypes.put("htt","text/webviewhtml");
mimeTypes.put("htx","text/html");
mimeTypes.put("ice","x-conference/x-cooltalk");
mimeTypes.put("ico","image/x-icon");
mimeTypes.put("idc","text/plain");
mimeTypes.put("ief","image/ief");
mimeTypes.put("iefs","image/ief");
mimeTypes.put("iges","model/iges,application/iges");
mimeTypes.put("igs","model/iges,application/iges");
mimeTypes.put("iii","application/x-iphone");
mimeTypes.put("ima","application/x-ima");
mimeTypes.put("imap","application/x-httpd-imap");
mimeTypes.put("ini","text/plain,application/textedit,zz-application/zz-winassoc-ini");
mimeTypes.put("inf","application/inf");
mimeTypes.put("ins","application/x-internett-signup,application/x-internet-signup");
mimeTypes.put("ip","application/x-ip2");
mimeTypes.put("ips","application/x-ipscript");
mimeTypes.put("ipx","application/x-ipix");
mimeTypes.put("isp","application/x-internet-signup");
mimeTypes.put("isu","video/x-isvideo");
mimeTypes.put("it","audio/it");
mimeTypes.put("iv","application/x-inventor");
mimeTypes.put("ivr","i-world/i-vrml");
mimeTypes.put("ivy","application/x-livescreen");
mimeTypes.put("jam","audio/x-jam");
mimeTypes.put("jar","application/java-archive");
mimeTypes.put("jav","text/plain,text/x-java-source");
mimeTypes.put("java","text/plain,text/x-java-source");
mimeTypes.put("jcm","application/x-java-commerce");
mimeTypes.put("jfif","image/jpeg,image/pjpeg,image/pipeg");
mimeTypes.put("jfif-tbnl","image/jpeg");
mimeTypes.put("jpe","image/jpeg,image/pjpeg");
mimeTypes.put("jpeg","image/jpeg,image/pjpeg");
mimeTypes.put("jpg","image/jpeg,image/pjpeg");
mimeTypes.put("jps","image/x-jps");
mimeTypes.put("js","application/javascript");
mimeTypes.put("json","application/json");
mimeTypes.put("jsonp","application/javascript");
mimeTypes.put("jsp","text/plain");
mimeTypes.put("jut","image/jutvision");
mimeTypes.put("kar","audio/midi,music/x-karaoke");
mimeTypes.put("ksh","application/x-ksh,text/x-scriptksh");
mimeTypes.put("la","audio/nspaudio,audio/x-nspaudio");
mimeTypes.put("lam","audio/x-liveaudio");
mimeTypes.put("latex","application/x-latex");
mimeTypes.put("lha","application/octet-stream,application/lha,application/x-lha");
mimeTypes.put("lhx","application/octet-stream");
mimeTypes.put("list","text/plain");
mimeTypes.put("lma","audio/nspaudio,audio/x-nspaudio");
mimeTypes.put("log","text/plain");
mimeTypes.put("lnk","application/x-ms-shortcut");
mimeTypes.put("lsf","video/x-la-asf");
mimeTypes.put("lsp","application/x-lisp,text/x-scriptlisp");
mimeTypes.put("lst","text/plain");
mimeTypes.put("lsx","text/x-la-asf,video/x-la-asf");
mimeTypes.put("ltx","application/x-latex");
mimeTypes.put("lzh","application/octet-stream,application/x-lzh");
mimeTypes.put("lzx","application/lzx,application/octet-stream,application/x-lzx");
mimeTypes.put("m","text/plain,text/x-m");
mimeTypes.put("m13","application/x-msmediaview");
mimeTypes.put("m14","application/x-msmediaview");
mimeTypes.put("m1v","video/mpeg");
mimeTypes.put("m2a","audio/mpeg");
mimeTypes.put("m2v","video/mpeg");
mimeTypes.put("m3u","audio/x-mpequrl,audio/x-mpegurl");
mimeTypes.put("man","application/x-troff-man");
mimeTypes.put("map","application/x-navimap");
mimeTypes.put("mar","text/plain");
mimeTypes.put("mbd","application/mbedlet");
mimeTypes.put("mc$","application/x-magic-cap-package-10");
mimeTypes.put("mcd","application/mcad,application/x-mathcad");
mimeTypes.put("mcf","image/vasa,text/mcf");
mimeTypes.put("mcp","application/netmc");
mimeTypes.put("mdb","application/x-msaccess");
mimeTypes.put("me","application/x-troff-me");
mimeTypes.put("mesh","model/mesh");
mimeTypes.put("mht","message/rfc822");
mimeTypes.put("mhtml","message/rfc822");
mimeTypes.put("mid","audio/midi,application/x-midi,audio/x-mid,audio/x-midi,music/crescendo,x-music/x-midi,audio/mid");
mimeTypes.put("midi","audio/midi,application/x-midi,audio/x-mid,audio/x-midi,music/crescendo,x-music/x-midi");
mimeTypes.put("mif","application/vndmif,application/x-frame,application/x-mif");
mimeTypes.put("mime","www/mime,message/rfc822");
mimeTypes.put("mjf","audio/x-vndaudioexplosionmjuicemediafile");
mimeTypes.put("mjpg","video/x-motion-jpeg");
mimeTypes.put("mm","application/base64,application/x-meme");
mimeTypes.put("mme","application/base64");
mimeTypes.put("mny","application/x-msmoney");
mimeTypes.put("mod","audio/mod,audio/x-mod");
mimeTypes.put("moov","video/quicktime");
mimeTypes.put("mov","video/quicktime");
mimeTypes.put("movie","video/x-sgi-movie");
mimeTypes.put("mp2","audio/mpeg,audio/x-mpeg,video/mpeg,video/x-mpeg,video/x-mpeq2a");
mimeTypes.put("mp3","audio/mpeg,audio/mpeg3,audio/x-mpeg-3,video/mpeg,video/x-mpeg");
mimeTypes.put("mp4","audio/mpeg,video/mpeg");
mimeTypes.put("mpa","audio/mpeg,video/mpeg");
mimeTypes.put("mpc","application/x-project");
mimeTypes.put("mpe","video/mpeg");
mimeTypes.put("mpeg","video/mpeg");
mimeTypes.put("mpg","video/mpeg,audio/mpeg");
mimeTypes.put("mpga","audio/mpeg");
mimeTypes.put("mpp","application/vndms-project");
mimeTypes.put("mpt","application/x-project");
mimeTypes.put("mpv","application/x-project");
mimeTypes.put("mpv2","video/mpeg");
mimeTypes.put("mpx","application/x-project");
mimeTypes.put("mrc","application/marc");
mimeTypes.put("ms","application/x-troff-ms");
mimeTypes.put("msh","model/mesh");
mimeTypes.put("mv","video/x-sgi-movie");
mimeTypes.put("mvb","application/x-msmediaview");
mimeTypes.put("my","audio/make");
mimeTypes.put("mzz","application/x-vndaudioexplosionmzz");
mimeTypes.put("nap","image/naplps");
mimeTypes.put("naplps","image/naplps");
mimeTypes.put("nc","application/x-netcdf");
mimeTypes.put("ncm","application/vndnokiaconfiguration-message");
mimeTypes.put("nif","image/x-niff");
mimeTypes.put("niff","image/x-niff");
mimeTypes.put("nix","application/x-mix-transfer");
mimeTypes.put("nsc","application/x-conference");
mimeTypes.put("nvd","application/x-navidoc");
mimeTypes.put("nws","message/rfc822");
mimeTypes.put("o","application/octet-stream");
mimeTypes.put("oda","application/oda");
mimeTypes.put("odb","application/vnd.oasis.opendocument.database");
mimeTypes.put("odc","application/vnd.oasis.opendocument.chart");
mimeTypes.put("odf","application/vnd.oasis.opendocument.formula");
mimeTypes.put("odg","application/vnd.oasis.opendocument.graphics");
mimeTypes.put("odi","application/vnd.oasis.opendocument.image");
mimeTypes.put("odm","application/vnd.oasis.opendocument.text-master");
mimeTypes.put("odp","application/vnd.oasis.opendocument.presentation");
mimeTypes.put("ods","application/vnd.oasis.opendocument.spreadsheet");
mimeTypes.put("odt","application/vnd.oasis.opendocument.text");
mimeTypes.put("omc","application/x-omc");
mimeTypes.put("omcd","application/x-omcdatamaker");
mimeTypes.put("omcr","application/x-omcregerator");
mimeTypes.put("otg","application/vnd.oasis.opendocument.graphics-template");
mimeTypes.put("oth","application/vnd.oasis.opendocument.text-web");
mimeTypes.put("otp","application/vnd.oasis.opendocument.presentation-template");
mimeTypes.put("ots","application/vnd.oasis.opendocument.spreadsheet-template");
mimeTypes.put("ott","application/vnd.oasis.opendocument.text-template");
mimeTypes.put("oxt","application/vnd.openofficeorg.extension");
mimeTypes.put("p","text/x-pascal");
mimeTypes.put("p10","application/pkcs10,application/x-pkcs10");
mimeTypes.put("p12","application/pkcs-12,application/x-pkcs12");
mimeTypes.put("p7a","application/x-pkcs7-signature");
mimeTypes.put("p7b","application/x-pkcs7-certificates");
mimeTypes.put("p7c","application/pkcs7-mime,application/x-pkcs7-mime");
mimeTypes.put("p7m","application/pkcs7-mime,application/x-pkcs7-mime");
mimeTypes.put("p7r","application/x-pkcs7-certreqresp");
mimeTypes.put("p7s","application/pkcs7-signature,application/x-pkcs7-signature");
mimeTypes.put("part","application/pro_eng");
mimeTypes.put("pas","text/pascal");
mimeTypes.put("pbm","image/x-portable-bitmap");
mimeTypes.put("pcl","application/vndhp-pcl,application/x-pcl");
mimeTypes.put("pct","image/x-pict");
mimeTypes.put("pcx","image/x-pcx");
mimeTypes.put("pdb","chemical/x-pdb");
mimeTypes.put("pdf","application/pdf");
mimeTypes.put("pfunk","audio/make,audio/makemyfunk");
mimeTypes.put("pfx","application/x-pkcs12");
mimeTypes.put("pgm","image/x-portable-graymap,image/x-portable-greymap");
mimeTypes.put("pgn","application/x-chess-pgn");
mimeTypes.put("pic","image/pict");
mimeTypes.put("pict","image/pict");
mimeTypes.put("pkg","application/x-newton-compatible-pkg");
mimeTypes.put("pko","application/vndms-pkipko,application/yndms-pkipko");
mimeTypes.put("pl","text/plain,text/x-scriptperl");
mimeTypes.put("plx","application/x-pixclscript");
mimeTypes.put("pm","image/x-xpixmap,text/x-scriptperl-module");
mimeTypes.put("pm4","application/x-pagemaker");
mimeTypes.put("pm5","application/x-pagemaker");
mimeTypes.put("pma","application/x-perfmon");
mimeTypes.put("pmc","application/x-perfmon");
mimeTypes.put("pml","application/x-perfmon");
mimeTypes.put("pmr","application/x-perfmon");
mimeTypes.put("pmw","application/x-perfmon");
mimeTypes.put("png","image/png");
mimeTypes.put("pnm","image/x-portable-anymap,application/x-portable-anymap");
mimeTypes.put("pot","application/mspowerpoint,application/vndms-powerpoint");
mimeTypes.put("pov","model/x-pov");
mimeTypes.put("ppa","application/vndms-powerpoint");
mimeTypes.put("ppm","image/x-portable-pixmap");
mimeTypes.put("pps","application/mspowerpoint,application/vndms-powerpoint");
mimeTypes.put("ppt","application/mspowerpoint,application/powerpoint,application/vndms-powerpoint,application/x-mspowerpoint");
mimeTypes.put("ppz","application/mspowerpoint");
mimeTypes.put("pre","application/x-freelance");
mimeTypes.put("prf","application/pics-rules");
mimeTypes.put("properties","text/plain");
mimeTypes.put("prt","application/pro_eng");
mimeTypes.put("ps","application/postscript");
mimeTypes.put("psd","application/octet-stream");
mimeTypes.put("pub","application/x-mspublisher");
mimeTypes.put("pvu","paleovu/x-pv");
mimeTypes.put("pwz","application/vndms-powerpoint");
mimeTypes.put("py","text/x-scriptphyton");
mimeTypes.put("pyc","applicaiton/x-bytecodepython");
mimeTypes.put("qcp","audio/vndqcelp");
mimeTypes.put("qd3","x-world/x-3dmf");
mimeTypes.put("qd3d","x-world/x-3dmf");
mimeTypes.put("qif","image/x-quicktime");
mimeTypes.put("qt","video/quicktime");
mimeTypes.put("qtc","video/x-qtc");
mimeTypes.put("qti","image/x-quicktime");
mimeTypes.put("qtif","image/x-quicktime");
mimeTypes.put("ra","audio/x-realaudio,audio/x-pn-realaudio,audio/x-pn-realaudio-plugin");
mimeTypes.put("ram","audio/x-pn-realaudio");
mimeTypes.put("ras","image/cmu-raster,application/x-cmu-raster,image/x-cmu-raster");
mimeTypes.put("rast","image/cmu-raster");
mimeTypes.put("rexx","text/x-scriptrexx");
mimeTypes.put("rf","image/vndrn-realflash");
mimeTypes.put("rgb","image/x-rgb");
mimeTypes.put("rm","audio/x-pn-realaudio,application/vndrn-realmedia");
mimeTypes.put("rmi","audio/mid");
mimeTypes.put("rmm","audio/x-pn-realaudio");
mimeTypes.put("rmp","audio/x-pn-realaudio,audio/x-pn-realaudio-plugin");
mimeTypes.put("rng","application/ringing-tones,application/vndnokiaringing-tone");
mimeTypes.put("rnx","application/vndrn-realplayer");
mimeTypes.put("roff","application/x-troff");
mimeTypes.put("rp","image/vndrn-realpix");
mimeTypes.put("rpm","audio/x-pn-realaudio-plugin");
mimeTypes.put("rt","text/richtext,text/vndrn-realtext");
mimeTypes.put("rtf","text/rtf,application/rtf,application/x-rtf,text/richtext");
mimeTypes.put("rtx","text/richtext,application/rtf");
mimeTypes.put("rv","video/vndrn-realvideo");
mimeTypes.put("s","text/x-asm");
mimeTypes.put("s3m","audio/s3m");
mimeTypes.put("saveme","application/octet-stream");
mimeTypes.put("sbk","application/x-tbook");
mimeTypes.put("scd","application/x-msschedule");
mimeTypes.put("scm","application/x-lotusscreencam,text/x-scriptguile,text/x-scriptscheme,video/x-scm");
mimeTypes.put("sct","text/scriptlet");
mimeTypes.put("sda","application/vnd.stardivision.draw,application/x-stardraw");
mimeTypes.put("sdc","application/vnd.stardivision.calc,application/x-starcalc");
mimeTypes.put("sdd","application/vnd.stardivision.impress,application/x-starimpress");
mimeTypes.put("sdm","application/vnd.stardivision.mail");
mimeTypes.put("sdml","text/plain");
mimeTypes.put("sdp","application/vnd.stardivision.impress-packed,application/sdp,application/x-sdp");
mimeTypes.put("sdr","application/sounder");
mimeTypes.put("sds","application/vnd.stardivision.chart,application/x-starchart");
mimeTypes.put("sdw","application/vnd.stardivision.writer,application/x-starwriter");
mimeTypes.put("sea","application/sea,application/x-sea");
mimeTypes.put("set","application/set");
mimeTypes.put("setpay","application/set-payment-initiation");
mimeTypes.put("setreg","application/set-registration-initiation");
mimeTypes.put("sgl","application/vnd.stardivision.writer-global");
mimeTypes.put("sgm","text/sgml,text/x-sgml");
mimeTypes.put("sgml","text/sgml,text/x-sgml");
mimeTypes.put("sh","application/x-sh,application/x-bsh,application/x-shar,text/x-scriptsh");
mimeTypes.put("shar","application/x-shar,application/x-bsh");
mimeTypes.put("shtml","text/html,text/x-server-parsed-html");
mimeTypes.put("sid","audio/x-psid");
mimeTypes.put("silo","model/mesh");
mimeTypes.put("sit","application/x-stuffit,application/x-sit");
mimeTypes.put("skd","application/x-koan");
mimeTypes.put("skm","application/x-koan");
mimeTypes.put("skp","application/x-koan");
mimeTypes.put("skt","application/x-koan");
mimeTypes.put("sl","application/x-seelogo");
mimeTypes.put("smf","application/vnd.stardivision.math,application/x-starmath");
mimeTypes.put("smi","application/smil");
mimeTypes.put("smil","application/smil");
mimeTypes.put("snd","audio/basic,audio/x-adpcm");
mimeTypes.put("sol","application/solids");
mimeTypes.put("spc","application/x-pkcs7-certificates,text/x-speech");
mimeTypes.put("spl","application/x-futuresplash,application/futuresplash");
mimeTypes.put("spr","application/x-sprite");
mimeTypes.put("sprite","application/x-sprite");
mimeTypes.put("src","application/x-wais-source");
mimeTypes.put("ssi","text/x-server-parsed-html");
mimeTypes.put("ssm","application/streamingmedia");
mimeTypes.put("sst","application/vndms-pkicertstore");
mimeTypes.put("stc","application/vnd.sun.xml.calc.template");
mimeTypes.put("std","application/vnd.sun.xml.draw.template");
mimeTypes.put("step","application/STEP,application/step");
mimeTypes.put("sti","application/vnd.sun.xml.impress.template");
mimeTypes.put("stl","application/SLA,application/sla,application/vndms-pkistl,application/x-navistyle");
mimeTypes.put("stm","text/html");
mimeTypes.put("stp","application/STEP,application/step");
mimeTypes.put("stw","application/vnd.sun.xml.writer.template");
mimeTypes.put("sv4cpio","application/x-sv4cpio");
mimeTypes.put("sv4crc","application/x-sv4crc");
mimeTypes.put("svf","image/vnddwg,image/x-dwg");
mimeTypes.put("svg","image/svg+xml");
mimeTypes.put("svr","application/x-world,x-world/x-svr");
mimeTypes.put("swf","application/x-shockwave-flash");
mimeTypes.put("sxc","application/vnd.sun.xml.calc");
mimeTypes.put("sxd","application/vnd.sun.xml.draw");
mimeTypes.put("sxg","application/vnd.sun.xml.writer.global");
mimeTypes.put("sxi","application/vnd.sun.xml.impress");
mimeTypes.put("sxm","application/vnd.sun.xml.math");
mimeTypes.put("sxw","application/vnd.sun.xml.writer");
mimeTypes.put("sys","video/x-mpeg-system");
mimeTypes.put("t","application/x-troff");
mimeTypes.put("talk","text/x-speech");
mimeTypes.put("tar","application/x-tar");
mimeTypes.put("tar.gz","application/x-gzip");
mimeTypes.put("tbk","application/toolbook,application/x-tbook");
mimeTypes.put("tcl","application/x-tcl,text/x-scripttcl");
mimeTypes.put("tcsh","text/x-scripttcsh");
mimeTypes.put("tex","application/x-tex");
mimeTypes.put("texi","application/x-texinfo");
mimeTypes.put("texinfo","application/x-texinfo");
mimeTypes.put("text","application/plain,text/plain");
mimeTypes.put("tgz","application/gnutar,application/x-compressed");
mimeTypes.put("tif","image/tiff,image/x-tiff");
mimeTypes.put("tiff","image/tiff,image/x-tiff");
mimeTypes.put("tr","application/x-troff");
mimeTypes.put("trm","application/x-msterminal");
mimeTypes.put("tsi","audio/TSP-audio,audio/tsp-audio");
mimeTypes.put("tsp","application/dsptype,audio/tsplayer");
mimeTypes.put("tsv","text/tab-separated-values");
mimeTypes.put("turbot","image/florian");
mimeTypes.put("txt","text/plain");
mimeTypes.put("uil","text/x-uil");
mimeTypes.put("uls","text/iuls");
mimeTypes.put("uni","text/uri-list");
mimeTypes.put("unis","text/uri-list");
mimeTypes.put("unv","application/i-deas");
mimeTypes.put("uri","text/uri-list");
mimeTypes.put("url","wwwserver/redirection,application/internet-shortcut,application/x-url,message/external-body,text/url,text/x-url");
mimeTypes.put("uris","text/uri-list");
mimeTypes.put("ustar","application/x-ustar,multipart/x-ustar");
mimeTypes.put("uu","application/octet-stream,text/x-uuencode");
mimeTypes.put("uue","text/x-uuencode");
mimeTypes.put("vcd","application/x-cdlink");
mimeTypes.put("vcf","text/x-vcard");
mimeTypes.put("vcs","text/x-vcalendar");
mimeTypes.put("vda","application/vda");
mimeTypes.put("vdo","video/vdo");
mimeTypes.put("vew","application/groupwise");
mimeTypes.put("viv","video/vndvivo,video/vivo");
mimeTypes.put("vivo","video/vndvivo,video/vivo");
mimeTypes.put("vmd","application/vocaltec-media-desc");
mimeTypes.put("vmf","application/vocaltec-media-file");
mimeTypes.put("voc","audio/voc,audio/x-voc");
mimeTypes.put("vos","video/vosaic");
mimeTypes.put("vox","audio/voxware");
mimeTypes.put("vqe","audio/x-twinvq-plugin");
mimeTypes.put("vqf","audio/x-twinvq");
mimeTypes.put("vql","audio/x-twinvq-plugin");
mimeTypes.put("vrml","model/vrml,application/x-vrml,x-world/x-vrml");
mimeTypes.put("vrt","x-world/x-vrt");
mimeTypes.put("vsd","application/x-visio");
mimeTypes.put("vst","application/x-visio");
mimeTypes.put("vsw","application/x-visio");
mimeTypes.put("w60","application/wordperfect60");
mimeTypes.put("w61","application/wordperfect61");
mimeTypes.put("w6w","application/msword");
mimeTypes.put("wav","audio/x-wav,audio/wav");
mimeTypes.put("wax","audio/x-ms-wax");
mimeTypes.put("wb1","application/x-qpro");
mimeTypes.put("wbmp","image/vndwapwbmp");
mimeTypes.put("wcm","application/vndms-works");
mimeTypes.put("wdb","application/vndms-works");
mimeTypes.put("web","application/vndxara");
mimeTypes.put("wiz","application/msword");
mimeTypes.put("wk1","application/x-123");
mimeTypes.put("wks","application/vndms-works");
mimeTypes.put("wm","video/x-ms-wm");
mimeTypes.put("wmf","windows/metafile,application/x-msmetafile");
mimeTypes.put("wma","audio/x-ms-wma");
mimeTypes.put("wmd","application/x-ms-wmd");
mimeTypes.put("wml","text/vndwapwml");
mimeTypes.put("wmlc","application/vndwapwmlc");
mimeTypes.put("wmls","text/vndwapwmlscript");
mimeTypes.put("wmlsc","application/vndwapwmlscriptc");
mimeTypes.put("wmv","audio/x-ms-wmv");
mimeTypes.put("wmx","video/x-ms-wmx");
mimeTypes.put("wmz","application/x-ms-wmz");
mimeTypes.put("word","application/msword");
mimeTypes.put("wp","application/wordperfect");
mimeTypes.put("wp5","application/wordperfect,application/wordperfect60");
mimeTypes.put("wp6","application/wordperfect");
mimeTypes.put("wpd","application/wordperfect,application/x-wpwin");
mimeTypes.put("wps","application/vndms-works");
mimeTypes.put("wq1","application/x-lotus");
mimeTypes.put("wri","application/mswrite,application/x-wri,application/x-mswrite");
mimeTypes.put("wrl","model/vrml,application/x-world,x-world/x-vrml");
mimeTypes.put("wrz","model/vrml,x-world/x-vrml");
mimeTypes.put("wsc","text/scriplet");
mimeTypes.put("wsrc","application/x-wais-source");
mimeTypes.put("wtk","application/x-wintalk");
mimeTypes.put("wvx","video/x-ms-wvx");
mimeTypes.put("x-png","image/png");
mimeTypes.put("xaf","x-world/x-vrml");
mimeTypes.put("xbm","image/x-xbitmap,image/x-xbm,image/xbm");
mimeTypes.put("xdr","video/x-amt-demorun");
mimeTypes.put("xgz","xgl/drawing");
mimeTypes.put("xhtml","application/xhtml+xml,text/html");
mimeTypes.put("xif","image/vndxiff");
mimeTypes.put("xl","application/excel");
mimeTypes.put("xla","application/excel,application/x-excel,application/x-msexcel,application/vndms-excel");
mimeTypes.put("xlb","application/excel,application/vndms-excel,application/x-excel");
mimeTypes.put("xlc","application/vndms-excel,application/excel,application/x-excel");
mimeTypes.put("xld","application/excel,application/x-excel");
mimeTypes.put("xlk","application/excel,application/x-excel");
mimeTypes.put("xll","application/vndms-excel,application/excel,application/x-excel");
mimeTypes.put("xlm","application/vndms-excel,application/excel,application/x-excel");
mimeTypes.put("xls","application/vndms-excel,application/excel,application/x-excel,application/x-msexcel");
mimeTypes.put("xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
mimeTypes.put("xlt","application/excel,application/x-excel,application/vndms-excel");
mimeTypes.put("xlv","application/excel,application/x-excel");
mimeTypes.put("xlw","application/vndms-excel,application/excel,application/x-excel,application/x-msexcel");
mimeTypes.put("xm","audio/xm");
mimeTypes.put("xml","text/xml,application/xml");
mimeTypes.put("xmz","xgl/movie");
mimeTypes.put("xof","x-world/x-vrml");
mimeTypes.put("xpix","application/x-vndls-xpix");
mimeTypes.put("xpm","image/x-xpixmap,image/xpm");
mimeTypes.put("xsd","text/xml");
mimeTypes.put("xsl","text/xml");
mimeTypes.put("xsr","video/x-amt-showrun");
mimeTypes.put("xwd","image/x-xwindowdump,image/x-xwd");
mimeTypes.put("xyz","chemical/x-pdb");
mimeTypes.put("z","application/x-compress,application/x-compressed");
mimeTypes.put("zhtml","text/html");
mimeTypes.put("zip","application/zip,application/x-compressed,application/x-zip-compressed,multipart/x-zip");
mimeTypes.put("zoo","application/octet-stream");
mimeTypes.put("zsh","text/x-scriptzsh");
mimeTypes.put("zul","text/html");
}
/**
* Returns a mapping for file extensions to corresponding mime-types.
*/
public static Map<String,String> getMimeTypes() {
return mimeTypes;
}
/**
* Returns the content-type for given filename by using mime-type.properties
* as dictionary for filename-extension.
*/
public static String guessContentTypeFromName(String filename) {
if (filename == null) {
return null;
}
int index = filename.lastIndexOf(".") + 1;
if (index != 0) {
String extension = filename.substring(index).toLowerCase();
if (mimeTypes.containsKey(extension)) {
return mimeTypes.get(extension).split(",")[0];
}
}
return "application/octet-stream";
}
/**
* Returns true if given extension is registered mime type.
*/
public static boolean isExtension(String extension) {
return mimeTypes.containsKey(extension);
}
}