2 // System.Web.MimeTypes
5 // Gonzalo Paniagua Javier (gonzalo@ximian.com)
7 // (C) 2002 Ximian, Inc (http://www.ximian.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 using System.Collections;
34 using System.Collections.Generic;
42 static Dictionary <string, string> mimeTypes;
44 static Hashtable mimeTypes;
50 mimeTypes = new Dictionary <string, string> (StringComparer.InvariantCultureIgnoreCase);
52 mimeTypes = new Hashtable (CaseInsensitiveHashCodeProvider.DefaultInvariant,
53 CaseInsensitiveComparer.DefaultInvariant);
55 mimeTypes.Add ("323", "text/h323");
56 mimeTypes.Add ("3dmf", "x-world/x-3dmf");
57 mimeTypes.Add ("3dm", "x-world/x-3dmf");
58 mimeTypes.Add ("aab", "application/x-authorware-bin");
59 mimeTypes.Add ("aam", "application/x-authorware-map");
60 mimeTypes.Add ("aas", "application/x-authorware-seg");
61 mimeTypes.Add ("abc", "text/vnd.abc");
62 mimeTypes.Add ("acgi", "text/html");
63 mimeTypes.Add ("acx", "application/internet-property-stream");
64 mimeTypes.Add ("afl", "video/animaflex");
65 mimeTypes.Add ("ai", "application/postscript");
66 mimeTypes.Add ("aif", "audio/aiff");
67 mimeTypes.Add ("aifc", "audio/aiff");
68 mimeTypes.Add ("aiff", "audio/aiff");
69 mimeTypes.Add ("aim", "application/x-aim");
70 mimeTypes.Add ("aip", "text/x-audiosoft-intra");
71 mimeTypes.Add ("ani", "application/x-navi-animation");
72 mimeTypes.Add ("aos", "application/x-nokia-9000-communicator-add-on-software");
73 mimeTypes.Add ("application", "application/x-ms-application");
74 mimeTypes.Add ("aps", "application/mime");
75 mimeTypes.Add ("art", "image/x-jg");
76 mimeTypes.Add ("asf", "video/x-ms-asf");
77 mimeTypes.Add ("asm", "text/x-asm");
78 mimeTypes.Add ("asp", "text/asp");
79 mimeTypes.Add ("asr", "video/x-ms-asf");
80 mimeTypes.Add ("asx", "application/x-mplayer2");
81 mimeTypes.Add ("au", "audio/x-au");
82 mimeTypes.Add ("avi", "video/avi");
83 mimeTypes.Add ("avs", "video/avs-video");
84 mimeTypes.Add ("axs", "application/olescript");
85 mimeTypes.Add ("bas", "text/plain");
86 mimeTypes.Add ("bcpio", "application/x-bcpio");
87 mimeTypes.Add ("bin", "application/octet-stream");
88 mimeTypes.Add ("bm", "image/bmp");
89 mimeTypes.Add ("bmp", "image/bmp");
90 mimeTypes.Add ("boo", "application/book");
91 mimeTypes.Add ("book", "application/book");
92 mimeTypes.Add ("boz", "application/x-bzip2");
93 mimeTypes.Add ("bsh", "application/x-bsh");
94 mimeTypes.Add ("bz2", "application/x-bzip2");
95 mimeTypes.Add ("bz", "application/x-bzip");
96 mimeTypes.Add ("cat", "application/vnd.ms-pki.seccat");
97 mimeTypes.Add ("ccad", "application/clariscad");
98 mimeTypes.Add ("cco", "application/x-cocoa");
99 mimeTypes.Add ("cc", "text/plain");
100 mimeTypes.Add ("cdf", "application/cdf");
101 mimeTypes.Add ("cer", "application/pkix-cert");
102 mimeTypes.Add ("cha", "application/x-chat");
103 mimeTypes.Add ("chat", "application/x-chat");
104 mimeTypes.Add ("class", "application/java");
105 mimeTypes.Add ("clp", "application/x-msclip");
106 mimeTypes.Add ("cmx", "image/x-cmx");
107 mimeTypes.Add ("cod", "image/cis-cod");
108 mimeTypes.Add ("conf", "text/plain");
109 mimeTypes.Add ("cpio", "application/x-cpio");
110 mimeTypes.Add ("cpp", "text/plain");
111 mimeTypes.Add ("cpt", "application/x-cpt");
112 mimeTypes.Add ("crd", "application/x-mscardfile");
113 mimeTypes.Add ("crl", "application/pkix-crl");
114 mimeTypes.Add ("crt", "application/pkix-cert");
115 mimeTypes.Add ("csh", "application/x-csh");
116 mimeTypes.Add ("css", "text/css");
117 mimeTypes.Add ("c", "text/plain");
118 mimeTypes.Add ("c++", "text/plain");
119 mimeTypes.Add ("cxx", "text/plain");
120 mimeTypes.Add ("dcr", "application/x-director");
121 mimeTypes.Add ("deepv", "application/x-deepv");
122 mimeTypes.Add ("def", "text/plain");
123 mimeTypes.Add ("deploy", "application/octet-stream");
124 mimeTypes.Add ("der", "application/x-x509-ca-cert");
125 mimeTypes.Add ("dib", "image/bmp");
126 mimeTypes.Add ("dif", "video/x-dv");
127 mimeTypes.Add ("dir", "application/x-director");
128 mimeTypes.Add ("disco", "text/xml");
129 mimeTypes.Add ("dll", "application/x-msdownload");
130 mimeTypes.Add ("dl", "video/dl");
131 mimeTypes.Add ("doc", "application/msword");
132 mimeTypes.Add ("dot", "application/msword");
133 mimeTypes.Add ("dp", "application/commonground");
134 mimeTypes.Add ("drw", "application/drafting");
135 mimeTypes.Add ("dvi", "application/x-dvi");
136 mimeTypes.Add ("dv", "video/x-dv");
137 mimeTypes.Add ("dwf", "drawing/x-dwf (old)");
138 mimeTypes.Add ("dwg", "application/acad");
139 mimeTypes.Add ("dxf", "application/dxf");
140 mimeTypes.Add ("dxr", "application/x-director");
141 mimeTypes.Add ("elc", "application/x-elc");
142 mimeTypes.Add ("el", "text/x-script.elisp");
143 mimeTypes.Add ("eml", "message/rfc822");
144 mimeTypes.Add ("eps", "application/postscript");
145 mimeTypes.Add ("es", "application/x-esrehber");
146 mimeTypes.Add ("etx", "text/x-setext");
147 mimeTypes.Add ("evy", "application/envoy");
148 mimeTypes.Add ("exe", "application/octet-stream");
149 mimeTypes.Add ("f77", "text/plain");
150 mimeTypes.Add ("f90", "text/plain");
151 mimeTypes.Add ("fdf", "application/vnd.fdf");
152 mimeTypes.Add ("fif", "image/fif");
153 mimeTypes.Add ("fli", "video/fli");
154 mimeTypes.Add ("flo", "image/florian");
155 mimeTypes.Add ("flr", "x-world/x-vrml");
156 mimeTypes.Add ("flx", "text/vnd.fmi.flexstor");
157 mimeTypes.Add ("fmf", "video/x-atomic3d-feature");
158 mimeTypes.Add ("for", "text/plain");
159 mimeTypes.Add ("fpx", "image/vnd.fpx");
160 mimeTypes.Add ("frl", "application/freeloader");
161 mimeTypes.Add ("f", "text/plain");
162 mimeTypes.Add ("funk", "audio/make");
163 mimeTypes.Add ("g3", "image/g3fax");
164 mimeTypes.Add ("gif", "image/gif");
165 mimeTypes.Add ("gl", "video/gl");
166 mimeTypes.Add ("gsd", "audio/x-gsm");
167 mimeTypes.Add ("gsm", "audio/x-gsm");
168 mimeTypes.Add ("gsp", "application/x-gsp");
169 mimeTypes.Add ("gss", "application/x-gss");
170 mimeTypes.Add ("gtar", "application/x-gtar");
171 mimeTypes.Add ("g", "text/plain");
172 mimeTypes.Add ("gz", "application/x-gzip");
173 mimeTypes.Add ("gzip", "application/x-gzip");
174 mimeTypes.Add ("hdf", "application/x-hdf");
175 mimeTypes.Add ("help", "application/x-helpfile");
176 mimeTypes.Add ("hgl", "application/vnd.hp-HPGL");
177 mimeTypes.Add ("hh", "text/plain");
178 mimeTypes.Add ("hlb", "text/x-script");
179 mimeTypes.Add ("hlp", "application/x-helpfile");
180 mimeTypes.Add ("hpg", "application/vnd.hp-HPGL");
181 mimeTypes.Add ("hpgl", "application/vnd.hp-HPGL");
182 mimeTypes.Add ("hqx", "application/binhex");
183 mimeTypes.Add ("hta", "application/hta");
184 mimeTypes.Add ("htc", "text/x-component");
185 mimeTypes.Add ("h", "text/plain");
186 mimeTypes.Add ("htmls", "text/html");
187 mimeTypes.Add ("html", "text/html");
188 mimeTypes.Add ("htm", "text/html");
189 mimeTypes.Add ("htt", "text/webviewhtml");
190 mimeTypes.Add ("htx", "text/html");
191 mimeTypes.Add ("ice", "x-conference/x-cooltalk");
192 mimeTypes.Add ("ico", "image/x-icon");
193 mimeTypes.Add ("idc", "text/plain");
194 mimeTypes.Add ("ief", "image/ief");
195 mimeTypes.Add ("iefs", "image/ief");
196 mimeTypes.Add ("iges", "application/iges");
197 mimeTypes.Add ("igs", "application/iges");
198 mimeTypes.Add ("iii", "application/x-iphone");
199 mimeTypes.Add ("ima", "application/x-ima");
200 mimeTypes.Add ("imap", "application/x-httpd-imap");
201 mimeTypes.Add ("inf", "application/inf");
202 mimeTypes.Add ("ins", "application/x-internett-signup");
203 mimeTypes.Add ("ip", "application/x-ip2");
204 mimeTypes.Add ("isp", "application/x-internet-signup");
205 mimeTypes.Add ("isu", "video/x-isvideo");
206 mimeTypes.Add ("it", "audio/it");
207 mimeTypes.Add ("iv", "application/x-inventor");
208 mimeTypes.Add ("ivf", "video/x-ivf");
209 mimeTypes.Add ("ivr", "i-world/i-vrml");
210 mimeTypes.Add ("ivy", "application/x-livescreen");
211 mimeTypes.Add ("jam", "audio/x-jam");
212 mimeTypes.Add ("java", "text/plain");
213 mimeTypes.Add ("jav", "text/plain");
214 mimeTypes.Add ("jcm", "application/x-java-commerce");
215 mimeTypes.Add ("jfif", "image/jpeg");
216 mimeTypes.Add ("jfif-tbnl", "image/jpeg");
217 mimeTypes.Add ("jpeg", "image/jpeg");
218 mimeTypes.Add ("jpe", "image/jpeg");
219 mimeTypes.Add ("jpg", "image/jpeg");
220 mimeTypes.Add ("jps", "image/x-jps");
221 mimeTypes.Add ("js", "application/x-javascript");
222 mimeTypes.Add ("jut", "image/jutvision");
223 mimeTypes.Add ("kar", "audio/midi");
224 mimeTypes.Add ("ksh", "text/x-script.ksh");
225 mimeTypes.Add ("la", "audio/nspaudio");
226 mimeTypes.Add ("lam", "audio/x-liveaudio");
227 mimeTypes.Add ("latex", "application/x-latex");
228 mimeTypes.Add ("list", "text/plain");
229 mimeTypes.Add ("lma", "audio/nspaudio");
230 mimeTypes.Add ("log", "text/plain");
231 mimeTypes.Add ("lsp", "application/x-lisp");
232 mimeTypes.Add ("lst", "text/plain");
233 mimeTypes.Add ("lsx", "text/x-la-asf");
234 mimeTypes.Add ("ltx", "application/x-latex");
235 mimeTypes.Add ("m13", "application/x-msmediaview");
236 mimeTypes.Add ("m14", "application/x-msmediaview");
237 mimeTypes.Add ("m1v", "video/mpeg");
238 mimeTypes.Add ("m2a", "audio/mpeg");
239 mimeTypes.Add ("m2v", "video/mpeg");
240 mimeTypes.Add ("m3u", "audio/x-mpequrl");
241 mimeTypes.Add ("man", "application/x-troff-man");
242 mimeTypes.Add ("manifest", "application/x-ms-manifest");
243 mimeTypes.Add ("map", "application/x-navimap");
244 mimeTypes.Add ("mar", "text/plain");
245 mimeTypes.Add ("mbd", "application/mbedlet");
246 mimeTypes.Add ("mc$", "application/x-magic-cap-package-1.0");
247 mimeTypes.Add ("mcd", "application/mcad");
248 mimeTypes.Add ("mcf", "image/vasa");
249 mimeTypes.Add ("mcp", "application/netmc");
250 mimeTypes.Add ("mdb", "application/x-msaccess");
251 mimeTypes.Add ("me", "application/x-troff-me");
252 mimeTypes.Add ("mht", "message/rfc822");
253 mimeTypes.Add ("mhtml", "message/rfc822");
254 mimeTypes.Add ("mid", "audio/midi");
255 mimeTypes.Add ("midi", "audio/midi");
256 mimeTypes.Add ("mif", "application/x-mif");
257 mimeTypes.Add ("mime", "message/rfc822");
258 mimeTypes.Add ("mjf", "audio/x-vnd.AudioExplosion.MjuiceMediaFile");
259 mimeTypes.Add ("mjpg", "video/x-motion-jpeg");
260 mimeTypes.Add ("mm", "application/base64");
261 mimeTypes.Add ("mme", "application/base64");
262 mimeTypes.Add ("mny", "application/x-msmoney");
263 mimeTypes.Add ("mod", "audio/mod");
264 mimeTypes.Add ("moov", "video/quicktime");
265 mimeTypes.Add ("movie", "video/x-sgi-movie");
266 mimeTypes.Add ("mov", "video/quicktime");
267 mimeTypes.Add ("mp2", "video/mpeg");
268 mimeTypes.Add ("mp3", "audio/mpeg3");
269 mimeTypes.Add ("mpa", "audio/mpeg");
270 mimeTypes.Add ("mpc", "application/x-project");
271 mimeTypes.Add ("mpeg", "video/mpeg");
272 mimeTypes.Add ("mpe", "video/mpeg");
273 mimeTypes.Add ("mpga", "audio/mpeg");
274 mimeTypes.Add ("mpg", "video/mpeg");
275 mimeTypes.Add ("mpp", "application/vnd.ms-project");
276 mimeTypes.Add ("mpt", "application/x-project");
277 mimeTypes.Add ("mpv2", "video/mpeg");
278 mimeTypes.Add ("mpv", "application/x-project");
279 mimeTypes.Add ("mpx", "application/x-project");
280 mimeTypes.Add ("mrc", "application/marc");
281 mimeTypes.Add ("ms", "application/x-troff-ms");
282 mimeTypes.Add ("m", "text/plain");
283 mimeTypes.Add ("mvb", "application/x-msmediaview");
284 mimeTypes.Add ("mv", "video/x-sgi-movie");
285 mimeTypes.Add ("my", "audio/make");
286 mimeTypes.Add ("mzz", "application/x-vnd.AudioExplosion.mzz");
287 mimeTypes.Add ("nap", "image/naplps");
288 mimeTypes.Add ("naplps", "image/naplps");
289 mimeTypes.Add ("nc", "application/x-netcdf");
290 mimeTypes.Add ("ncm", "application/vnd.nokia.configuration-message");
291 mimeTypes.Add ("niff", "image/x-niff");
292 mimeTypes.Add ("nif", "image/x-niff");
293 mimeTypes.Add ("nix", "application/x-mix-transfer");
294 mimeTypes.Add ("nsc", "application/x-conference");
295 mimeTypes.Add ("nvd", "application/x-navidoc");
296 mimeTypes.Add ("nws", "message/rfc822");
297 mimeTypes.Add ("oda", "application/oda");
298 mimeTypes.Add ("ods", "application/oleobject");
299 mimeTypes.Add ("omc", "application/x-omc");
300 mimeTypes.Add ("omcd", "application/x-omcdatamaker");
301 mimeTypes.Add ("omcr", "application/x-omcregerator");
302 mimeTypes.Add ("p10", "application/pkcs10");
303 mimeTypes.Add ("p12", "application/pkcs-12");
304 mimeTypes.Add ("p7a", "application/x-pkcs7-signature");
305 mimeTypes.Add ("p7b", "application/x-pkcs7-certificates");
306 mimeTypes.Add ("p7c", "application/pkcs7-mime");
307 mimeTypes.Add ("p7m", "application/pkcs7-mime");
308 mimeTypes.Add ("p7r", "application/x-pkcs7-certreqresp");
309 mimeTypes.Add ("p7s", "application/pkcs7-signature");
310 mimeTypes.Add ("part", "application/pro_eng");
311 mimeTypes.Add ("pas", "text/pascal");
312 mimeTypes.Add ("pbm", "image/x-portable-bitmap");
313 mimeTypes.Add ("pcl", "application/x-pcl");
314 mimeTypes.Add ("pct", "image/x-pict");
315 mimeTypes.Add ("pcx", "image/x-pcx");
316 mimeTypes.Add ("pdb", "chemical/x-pdb");
317 mimeTypes.Add ("pdf", "application/pdf");
318 mimeTypes.Add ("pfunk", "audio/make");
319 mimeTypes.Add ("pfx", "application/x-pkcs12");
320 mimeTypes.Add ("pgm", "image/x-portable-graymap");
321 mimeTypes.Add ("pic", "image/pict");
322 mimeTypes.Add ("pict", "image/pict");
323 mimeTypes.Add ("pkg", "application/x-newton-compatible-pkg");
324 mimeTypes.Add ("pko", "application/vnd.ms-pki.pko");
325 mimeTypes.Add ("pl", "text/plain");
326 mimeTypes.Add ("plx", "application/x-PiXCLscript");
327 mimeTypes.Add ("pm4", "application/x-pagemaker");
328 mimeTypes.Add ("pm5", "application/x-pagemaker");
329 mimeTypes.Add ("pma", "application/x-perfmon");
330 mimeTypes.Add ("pmc", "application/x-perfmon");
331 mimeTypes.Add ("pm", "image/x-xpixmap");
332 mimeTypes.Add ("pml", "application/x-perfmon");
333 mimeTypes.Add ("pmr", "application/x-perfmon");
334 mimeTypes.Add ("pmw", "application/x-perfmon");
335 mimeTypes.Add ("png", "image/png");
336 mimeTypes.Add ("pnm", "application/x-portable-anymap");
337 mimeTypes.Add ("pot", "application/mspowerpoint");
338 mimeTypes.Add ("pov", "model/x-pov");
339 mimeTypes.Add ("ppa", "application/vnd.ms-powerpoint");
340 mimeTypes.Add ("ppm", "image/x-portable-pixmap");
341 mimeTypes.Add ("pps", "application/mspowerpoint");
342 mimeTypes.Add ("ppt", "application/mspowerpoint");
343 mimeTypes.Add ("ppz", "application/mspowerpoint");
344 mimeTypes.Add ("pre", "application/x-freelance");
345 mimeTypes.Add ("prf", "application/pics-rules");
346 mimeTypes.Add ("prt", "application/pro_eng");
347 mimeTypes.Add ("ps", "application/postscript");
348 mimeTypes.Add ("p", "text/x-pascal");
349 mimeTypes.Add ("pub", "application/x-mspublisher");
350 mimeTypes.Add ("pvu", "paleovu/x-pv");
351 mimeTypes.Add ("pwz", "application/vnd.ms-powerpoint");
352 mimeTypes.Add ("pyc", "applicaiton/x-bytecode.python");
353 mimeTypes.Add ("py", "text/x-script.phyton");
354 mimeTypes.Add ("qcp", "audio/vnd.qcelp");
355 mimeTypes.Add ("qd3d", "x-world/x-3dmf");
356 mimeTypes.Add ("qd3", "x-world/x-3dmf");
357 mimeTypes.Add ("qif", "image/x-quicktime");
358 mimeTypes.Add ("qtc", "video/x-qtc");
359 mimeTypes.Add ("qtif", "image/x-quicktime");
360 mimeTypes.Add ("qti", "image/x-quicktime");
361 mimeTypes.Add ("qt", "video/quicktime");
362 mimeTypes.Add ("ra", "audio/x-pn-realaudio");
363 mimeTypes.Add ("ram", "audio/x-pn-realaudio");
364 mimeTypes.Add ("ras", "application/x-cmu-raster");
365 mimeTypes.Add ("rast", "image/cmu-raster");
366 mimeTypes.Add ("rexx", "text/x-script.rexx");
367 mimeTypes.Add ("rf", "image/vnd.rn-realflash");
368 mimeTypes.Add ("rgb", "image/x-rgb");
369 mimeTypes.Add ("rm", "application/vnd.rn-realmedia");
370 mimeTypes.Add ("rmi", "audio/mid");
371 mimeTypes.Add ("rmm", "audio/x-pn-realaudio");
372 mimeTypes.Add ("rmp", "audio/x-pn-realaudio");
373 mimeTypes.Add ("rng", "application/ringing-tones");
374 mimeTypes.Add ("rnx", "application/vnd.rn-realplayer");
375 mimeTypes.Add ("roff", "application/x-troff");
376 mimeTypes.Add ("rp", "image/vnd.rn-realpix");
377 mimeTypes.Add ("rpm", "audio/x-pn-realaudio-plugin");
378 mimeTypes.Add ("rss", "text/xml");
379 mimeTypes.Add ("rtf", "text/richtext");
380 mimeTypes.Add ("rt", "text/richtext");
381 mimeTypes.Add ("rtx", "text/richtext");
382 mimeTypes.Add ("rv", "video/vnd.rn-realvideo");
383 mimeTypes.Add ("s3m", "audio/s3m");
384 mimeTypes.Add ("sbk", "application/x-tbook");
385 mimeTypes.Add ("scd", "application/x-msschedule");
386 mimeTypes.Add ("scm", "application/x-lotusscreencam");
387 mimeTypes.Add ("sct", "text/scriptlet");
388 mimeTypes.Add ("sdml", "text/plain");
389 mimeTypes.Add ("sdp", "application/sdp");
390 mimeTypes.Add ("sdr", "application/sounder");
391 mimeTypes.Add ("sea", "application/sea");
392 mimeTypes.Add ("set", "application/set");
393 mimeTypes.Add ("setpay", "application/set-payment-initiation");
394 mimeTypes.Add ("setreg", "application/set-registration-initiation");
395 mimeTypes.Add ("sgml", "text/sgml");
396 mimeTypes.Add ("sgm", "text/sgml");
397 mimeTypes.Add ("shar", "application/x-bsh");
398 mimeTypes.Add ("sh", "text/x-script.sh");
399 mimeTypes.Add ("shtml", "text/html");
400 mimeTypes.Add ("sid", "audio/x-psid");
401 mimeTypes.Add ("sit", "application/x-sit");
402 mimeTypes.Add ("skd", "application/x-koan");
403 mimeTypes.Add ("skm", "application/x-koan");
404 mimeTypes.Add ("skp", "application/x-koan");
405 mimeTypes.Add ("skt", "application/x-koan");
406 mimeTypes.Add ("sl", "application/x-seelogo");
407 mimeTypes.Add ("smi", "application/smil");
408 mimeTypes.Add ("smil", "application/smil");
409 mimeTypes.Add ("snd", "audio/basic");
410 mimeTypes.Add ("sol", "application/solids");
411 mimeTypes.Add ("spc", "application/x-pkcs7-certificates");
412 mimeTypes.Add ("spl", "application/futuresplash");
413 mimeTypes.Add ("spr", "application/x-sprite");
414 mimeTypes.Add ("sprite", "application/x-sprite");
415 mimeTypes.Add ("src", "application/x-wais-source");
416 mimeTypes.Add ("ssi", "text/x-server-parsed-html");
417 mimeTypes.Add ("ssm", "application/streamingmedia");
418 mimeTypes.Add ("sst", "application/vnd.ms-pki.certstore");
419 mimeTypes.Add ("step", "application/step");
420 mimeTypes.Add ("s", "text/x-asm");
421 mimeTypes.Add ("stl", "application/sla");
422 mimeTypes.Add ("stm", "text/html");
423 mimeTypes.Add ("stp", "application/step");
424 mimeTypes.Add ("sv4cpio", "application/x-sv4cpio");
425 mimeTypes.Add ("sv4crc", "application/x-sv4crc");
426 mimeTypes.Add ("svf", "image/x-dwg");
427 mimeTypes.Add ("svr", "application/x-world");
428 mimeTypes.Add ("swf", "application/x-shockwave-flash");
429 mimeTypes.Add ("talk", "text/x-speech");
430 mimeTypes.Add ("t", "application/x-troff");
431 mimeTypes.Add ("tar", "application/x-tar");
432 mimeTypes.Add ("tbk", "application/toolbook");
433 mimeTypes.Add ("tcl", "text/x-script.tcl");
434 mimeTypes.Add ("tcsh", "text/x-script.tcsh");
435 mimeTypes.Add ("tex", "application/x-tex");
436 mimeTypes.Add ("texi", "application/x-texinfo");
437 mimeTypes.Add ("texinfo", "application/x-texinfo");
438 mimeTypes.Add ("text", "text/plain");
439 mimeTypes.Add ("tgz", "application/x-compressed");
440 mimeTypes.Add ("tiff", "image/tiff");
441 mimeTypes.Add ("tif", "image/tiff");
442 mimeTypes.Add ("tr", "application/x-troff");
443 mimeTypes.Add ("trm", "application/x-msterminal");
444 mimeTypes.Add ("tsi", "audio/tsp-audio");
445 mimeTypes.Add ("tsp", "audio/tsplayer");
446 mimeTypes.Add ("tsv", "text/tab-separated-values");
447 mimeTypes.Add ("turbot", "image/florian");
448 mimeTypes.Add ("txt", "text/plain");
449 mimeTypes.Add ("uil", "text/x-uil");
450 mimeTypes.Add ("uls", "text/iuls");
451 mimeTypes.Add ("unis", "text/uri-list");
452 mimeTypes.Add ("uni", "text/uri-list");
453 mimeTypes.Add ("unv", "application/i-deas");
454 mimeTypes.Add ("uris", "text/uri-list");
455 mimeTypes.Add ("uri", "text/uri-list");
456 mimeTypes.Add ("ustar", "multipart/x-ustar");
457 mimeTypes.Add ("uue", "text/x-uuencode");
458 mimeTypes.Add ("uu", "text/x-uuencode");
459 mimeTypes.Add ("vcd", "application/x-cdlink");
460 mimeTypes.Add ("vcf", "text/x-vcard");
461 mimeTypes.Add ("vcs", "text/x-vCalendar");
462 mimeTypes.Add ("vda", "application/vda");
463 mimeTypes.Add ("vdo", "video/vdo");
464 mimeTypes.Add ("vew", "application/groupwise");
465 mimeTypes.Add ("vivo", "video/vivo");
466 mimeTypes.Add ("viv", "video/vivo");
467 mimeTypes.Add ("vmd", "application/vocaltec-media-desc");
468 mimeTypes.Add ("vmf", "application/vocaltec-media-file");
469 mimeTypes.Add ("voc", "audio/voc");
470 mimeTypes.Add ("vos", "video/vosaic");
471 mimeTypes.Add ("vox", "audio/voxware");
472 mimeTypes.Add ("vqe", "audio/x-twinvq-plugin");
473 mimeTypes.Add ("vqf", "audio/x-twinvq");
474 mimeTypes.Add ("vql", "audio/x-twinvq-plugin");
475 mimeTypes.Add ("vrml", "application/x-vrml");
476 mimeTypes.Add ("vrt", "x-world/x-vrt");
477 mimeTypes.Add ("vsd", "application/x-visio");
478 mimeTypes.Add ("vst", "application/x-visio");
479 mimeTypes.Add ("vsw", "application/x-visio");
480 mimeTypes.Add ("w60", "application/wordperfect6.0");
481 mimeTypes.Add ("w61", "application/wordperfect6.1");
482 mimeTypes.Add ("w6w", "application/msword");
483 mimeTypes.Add ("wav", "audio/wav");
484 mimeTypes.Add ("wb1", "application/x-qpro");
485 mimeTypes.Add ("wbmp", "image/vnd.wap.wbmp");
486 mimeTypes.Add ("wcm", "application/vnd.ms-works");
487 mimeTypes.Add ("wdb", "application/vnd.ms-works");
488 mimeTypes.Add ("web", "application/vnd.xara");
489 mimeTypes.Add ("wiz", "application/msword");
490 mimeTypes.Add ("wk1", "application/x-123");
491 mimeTypes.Add ("wks", "application/vnd.ms-works");
492 mimeTypes.Add ("wmf", "windows/metafile");
493 mimeTypes.Add ("wmlc", "application/vnd.wap.wmlc");
494 mimeTypes.Add ("wmlsc", "application/vnd.wap.wmlscriptc");
495 mimeTypes.Add ("wmls", "text/vnd.wap.wmlscript");
496 mimeTypes.Add ("wml", "text/vnd.wap.wml");
497 mimeTypes.Add ("word", "application/msword");
498 mimeTypes.Add ("wp5", "application/wordperfect");
499 mimeTypes.Add ("wp6", "application/wordperfect");
500 mimeTypes.Add ("wp", "application/wordperfect");
501 mimeTypes.Add ("wpd", "application/wordperfect");
502 mimeTypes.Add ("wps", "application/vnd.ms-works");
503 mimeTypes.Add ("wq1", "application/x-lotus");
504 mimeTypes.Add ("wri", "application/mswrite");
505 mimeTypes.Add ("wrl", "application/x-world");
506 mimeTypes.Add ("wrz", "model/vrml");
507 mimeTypes.Add ("wsc", "text/scriplet");
508 mimeTypes.Add ("wsdl", "text/xml");
509 mimeTypes.Add ("wsrc", "application/x-wais-source");
510 mimeTypes.Add ("wtk", "application/x-wintalk");
511 mimeTypes.Add ("xaf", "x-world/x-vrml");
512 mimeTypes.Add ("xbm", "image/x-xbitmap");
513 mimeTypes.Add ("xdr", "video/x-amt-demorun");
514 mimeTypes.Add ("xgz", "xgl/drawing");
515 mimeTypes.Add ("xif", "image/vnd.xiff");
516 mimeTypes.Add ("xla", "application/excel");
517 mimeTypes.Add ("xl", "application/excel");
518 mimeTypes.Add ("xlb", "application/excel");
519 mimeTypes.Add ("xlc", "application/excel");
520 mimeTypes.Add ("xld", "application/excel");
521 mimeTypes.Add ("xlk", "application/excel");
522 mimeTypes.Add ("xll", "application/excel");
523 mimeTypes.Add ("xlm", "application/excel");
524 mimeTypes.Add ("xls", "application/excel");
525 mimeTypes.Add ("xlt", "application/excel");
526 mimeTypes.Add ("xlv", "application/excel");
527 mimeTypes.Add ("xlw", "application/excel");
528 mimeTypes.Add ("xm", "audio/xm");
529 mimeTypes.Add ("xml", "text/xml");
530 mimeTypes.Add ("xmz", "xgl/movie");
531 mimeTypes.Add ("xof", "x-world/x-vrml");
532 mimeTypes.Add ("xpix", "application/x-vnd.ls-xpix");
533 mimeTypes.Add ("xpm", "image/xpm");
534 mimeTypes.Add ("x-png", "image/png");
535 mimeTypes.Add ("xsd", "text/xml");
536 mimeTypes.Add ("xsl", "text/xml");
537 mimeTypes.Add ("xsr", "video/x-amt-showrun");
538 mimeTypes.Add ("xwd", "image/x-xwd");
539 mimeTypes.Add ("xyz", "chemical/x-pdb");
540 mimeTypes.Add ("z", "application/x-compressed");
541 mimeTypes.Add ("zip", "application/zip");
542 mimeTypes.Add ("zsh", "text/x-script.zsh");
545 public static string GetMimeType (string fileName)
547 string result = null;
548 int dot = fileName.LastIndexOf ('.');
550 if (dot != -1 && fileName.Length > dot + 1)
551 result = mimeTypes [fileName.Substring (dot + 1)] as string;
554 result = "application/octet-stream";