/* 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); } }