1 | #!/usr/bin/env python |
---|
2 | # -*- coding: utf-8 -*- |
---|
3 | |
---|
4 | """ |
---|
5 | | This file is part of the web2py Web Framework |
---|
6 | | Copyrighted by Massimo Di Pierro <mdipierro@cs.depaul.edu> |
---|
7 | | License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html) |
---|
8 | |
---|
9 | CONTENT_TYPE dictionary created against freedesktop.org's shared mime info |
---|
10 | database version 1.1. |
---|
11 | |
---|
12 | Deviations from official standards: |
---|
13 | - .md: application/x-genesis-rom --> text/x-markdown |
---|
14 | - .png: image/x-apple-ios-png --> image/png |
---|
15 | Additions: |
---|
16 | - .load: text/html |
---|
17 | - .json: application/json |
---|
18 | - .jsonp: application/jsonp |
---|
19 | - .pickle: application/python-pickle |
---|
20 | - .w2p': application/w2p |
---|
21 | """ |
---|
22 | from gluon._compat import to_native |
---|
23 | |
---|
24 | __all__ = ['contenttype'] |
---|
25 | |
---|
26 | CONTENT_TYPE = { |
---|
27 | '.123': 'application/vnd.lotus-1-2-3', |
---|
28 | '.3ds': 'image/x-3ds', |
---|
29 | '.3g2': 'video/3gpp2', |
---|
30 | '.3ga': 'video/3gpp', |
---|
31 | '.3gp': 'video/3gpp', |
---|
32 | '.3gp2': 'video/3gpp2', |
---|
33 | '.3gpp': 'video/3gpp', |
---|
34 | '.3gpp2': 'video/3gpp2', |
---|
35 | '.602': 'application/x-t602', |
---|
36 | '.669': 'audio/x-mod', |
---|
37 | '.7z': 'application/x-7z-compressed', |
---|
38 | '.a': 'application/x-archive', |
---|
39 | '.aac': 'audio/aac', |
---|
40 | '.abw': 'application/x-abiword', |
---|
41 | '.abw.crashed': 'application/x-abiword', |
---|
42 | '.abw.gz': 'application/x-abiword', |
---|
43 | '.ac3': 'audio/ac3', |
---|
44 | '.ace': 'application/x-ace', |
---|
45 | '.adb': 'text/x-adasrc', |
---|
46 | '.ads': 'text/x-adasrc', |
---|
47 | '.afm': 'application/x-font-afm', |
---|
48 | '.ag': 'image/x-applix-graphics', |
---|
49 | '.ai': 'application/illustrator', |
---|
50 | '.aif': 'audio/x-aiff', |
---|
51 | '.aifc': 'audio/x-aifc', |
---|
52 | '.aiff': 'audio/x-aiff', |
---|
53 | '.aiffc': 'audio/x-aifc', |
---|
54 | '.al': 'application/x-perl', |
---|
55 | '.alz': 'application/x-alz', |
---|
56 | '.amr': 'audio/amr', |
---|
57 | '.amz': 'audio/x-amzxml', |
---|
58 | '.ani': 'application/x-navi-animation', |
---|
59 | '.anim[1-9j]': 'video/x-anim', |
---|
60 | '.anx': 'application/annodex', |
---|
61 | '.ape': 'audio/x-ape', |
---|
62 | '.apk': 'application/vnd.android.package-archive', |
---|
63 | '.ar': 'application/x-archive', |
---|
64 | '.arj': 'application/x-arj', |
---|
65 | '.arw': 'image/x-sony-arw', |
---|
66 | '.as': 'application/x-applix-spreadsheet', |
---|
67 | '.asc': 'text/plain', |
---|
68 | '.asf': 'video/x-ms-asf', |
---|
69 | '.asp': 'application/x-asp', |
---|
70 | '.ass': 'text/x-ssa', |
---|
71 | '.asx': 'audio/x-ms-asx', |
---|
72 | '.atom': 'application/atom+xml', |
---|
73 | '.au': 'audio/basic', |
---|
74 | '.avf': 'video/x-msvideo', |
---|
75 | '.avi': 'video/x-msvideo', |
---|
76 | '.aw': 'application/x-applix-word', |
---|
77 | '.awb': 'audio/amr-wb', |
---|
78 | '.awk': 'application/x-awk', |
---|
79 | '.axa': 'audio/annodex', |
---|
80 | '.axv': 'video/annodex', |
---|
81 | '.bak': 'application/x-trash', |
---|
82 | '.bcpio': 'application/x-bcpio', |
---|
83 | '.bdf': 'application/x-font-bdf', |
---|
84 | '.bdm': 'video/mp2t', |
---|
85 | '.bdmv': 'video/mp2t', |
---|
86 | '.bib': 'text/x-bibtex', |
---|
87 | '.bin': 'application/octet-stream', |
---|
88 | '.blend': 'application/x-blender', |
---|
89 | '.blender': 'application/x-blender', |
---|
90 | '.bmp': 'image/bmp', |
---|
91 | '.bz': 'application/x-bzip', |
---|
92 | '.bz2': 'application/x-bzip', |
---|
93 | '.c': 'text/x-csrc', |
---|
94 | '.c++': 'text/x-c++src', |
---|
95 | '.cab': 'application/vnd.ms-cab-compressed', |
---|
96 | '.cap': 'application/vnd.tcpdump.pcap', |
---|
97 | '.cb7': 'application/x-cb7', |
---|
98 | '.cbl': 'text/x-cobol', |
---|
99 | '.cbr': 'application/x-cbr', |
---|
100 | '.cbt': 'application/x-cbt', |
---|
101 | '.cbz': 'application/x-cbz', |
---|
102 | '.cc': 'text/x-c++src', |
---|
103 | '.ccmx': 'application/x-ccmx', |
---|
104 | '.cdf': 'application/x-netcdf', |
---|
105 | '.cdr': 'application/vnd.corel-draw', |
---|
106 | '.cer': 'application/pkix-cert', |
---|
107 | '.cert': 'application/x-x509-ca-cert', |
---|
108 | '.cgm': 'image/cgm', |
---|
109 | '.chm': 'application/vnd.ms-htmlhelp', |
---|
110 | '.chrt': 'application/x-kchart', |
---|
111 | '.class': 'application/x-java', |
---|
112 | '.clpi': 'video/mp2t', |
---|
113 | '.cls': 'text/x-tex', |
---|
114 | '.cmake': 'text/x-cmake', |
---|
115 | '.cob': 'text/x-cobol', |
---|
116 | '.cpi': 'video/mp2t', |
---|
117 | '.cpio': 'application/x-cpio', |
---|
118 | '.cpio.gz': 'application/x-cpio-compressed', |
---|
119 | '.cpp': 'text/x-c++src', |
---|
120 | '.cr2': 'image/x-canon-cr2', |
---|
121 | '.crl': 'application/pkix-crl', |
---|
122 | '.crt': 'application/x-x509-ca-cert', |
---|
123 | '.crw': 'image/x-canon-crw', |
---|
124 | '.cs': 'text/x-csharp', |
---|
125 | '.csh': 'application/x-csh', |
---|
126 | '.css': 'text/css', |
---|
127 | '.cssl': 'text/css', |
---|
128 | '.csv': 'text/csv', |
---|
129 | '.cue': 'application/x-cue', |
---|
130 | '.cur': 'image/x-win-bitmap', |
---|
131 | '.cxx': 'text/x-c++src', |
---|
132 | '.d': 'text/x-dsrc', |
---|
133 | '.dar': 'application/x-dar', |
---|
134 | '.dbf': 'application/x-dbf', |
---|
135 | '.dc': 'application/x-dc-rom', |
---|
136 | '.dcl': 'text/x-dcl', |
---|
137 | '.dcm': 'application/dicom', |
---|
138 | '.dcr': 'image/x-kodak-dcr', |
---|
139 | '.dds': 'image/x-dds', |
---|
140 | '.deb': 'application/x-deb', |
---|
141 | '.der': 'application/x-x509-ca-cert', |
---|
142 | '.desktop': 'application/x-desktop', |
---|
143 | '.di': 'text/x-dsrc', |
---|
144 | '.dia': 'application/x-dia-diagram', |
---|
145 | '.diff': 'text/x-patch', |
---|
146 | '.divx': 'video/x-msvideo', |
---|
147 | '.djv': 'image/vnd.djvu', |
---|
148 | '.djvu': 'image/vnd.djvu', |
---|
149 | '.dmg': 'application/x-apple-diskimage', |
---|
150 | '.dmp': 'application/vnd.tcpdump.pcap', |
---|
151 | '.dng': 'image/x-adobe-dng', |
---|
152 | '.doc': 'application/msword', |
---|
153 | '.docbook': 'application/x-docbook+xml', |
---|
154 | '.docm': 'application/vnd.ms-word.document.macroenabled.12', |
---|
155 | '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', |
---|
156 | '.dot': 'text/vnd.graphviz', |
---|
157 | '.dotm': 'application/vnd.ms-word.template.macroenabled.12', |
---|
158 | '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', |
---|
159 | '.dsl': 'text/x-dsl', |
---|
160 | '.dtd': 'application/xml-dtd', |
---|
161 | '.dts': 'audio/vnd.dts', |
---|
162 | '.dtshd': 'audio/vnd.dts.hd', |
---|
163 | '.dtx': 'text/x-tex', |
---|
164 | '.dv': 'video/dv', |
---|
165 | '.dvi': 'application/x-dvi', |
---|
166 | '.dvi.bz2': 'application/x-bzdvi', |
---|
167 | '.dvi.gz': 'application/x-gzdvi', |
---|
168 | '.dwg': 'image/vnd.dwg', |
---|
169 | '.dxf': 'image/vnd.dxf', |
---|
170 | '.e': 'text/x-eiffel', |
---|
171 | '.egon': 'application/x-egon', |
---|
172 | '.eif': 'text/x-eiffel', |
---|
173 | '.el': 'text/x-emacs-lisp', |
---|
174 | '.emf': 'image/x-emf', |
---|
175 | '.eml': 'message/rfc822', |
---|
176 | '.emp': 'application/vnd.emusic-emusic_package', |
---|
177 | '.ent': 'application/xml-external-parsed-entity', |
---|
178 | '.eps': 'image/x-eps', |
---|
179 | '.eps.bz2': 'image/x-bzeps', |
---|
180 | '.eps.gz': 'image/x-gzeps', |
---|
181 | '.epsf': 'image/x-eps', |
---|
182 | '.epsf.bz2': 'image/x-bzeps', |
---|
183 | '.epsf.gz': 'image/x-gzeps', |
---|
184 | '.epsi': 'image/x-eps', |
---|
185 | '.epsi.bz2': 'image/x-bzeps', |
---|
186 | '.epsi.gz': 'image/x-gzeps', |
---|
187 | '.epub': 'application/epub+zip', |
---|
188 | '.erl': 'text/x-erlang', |
---|
189 | '.es': 'application/ecmascript', |
---|
190 | '.etheme': 'application/x-e-theme', |
---|
191 | '.etx': 'text/x-setext', |
---|
192 | '.exe': 'application/x-ms-dos-executable', |
---|
193 | '.exr': 'image/x-exr', |
---|
194 | '.ez': 'application/andrew-inset', |
---|
195 | '.f': 'text/x-fortran', |
---|
196 | '.f4a': 'audio/mp4', |
---|
197 | '.f4b': 'audio/x-m4b', |
---|
198 | '.f4v': 'video/mp4', |
---|
199 | '.f90': 'text/x-fortran', |
---|
200 | '.f95': 'text/x-fortran', |
---|
201 | '.fb2': 'application/x-fictionbook+xml', |
---|
202 | '.fig': 'image/x-xfig', |
---|
203 | '.fits': 'image/fits', |
---|
204 | '.fl': 'application/x-fluid', |
---|
205 | '.flac': 'audio/flac', |
---|
206 | '.flc': 'video/x-flic', |
---|
207 | '.fli': 'video/x-flic', |
---|
208 | '.flv': 'video/x-flv', |
---|
209 | '.flw': 'application/x-kivio', |
---|
210 | '.fo': 'text/x-xslfo', |
---|
211 | '.fodg': 'application/vnd.oasis.opendocument.graphics-flat-xml', |
---|
212 | '.fodp': 'application/vnd.oasis.opendocument.presentation-flat-xml', |
---|
213 | '.fods': 'application/vnd.oasis.opendocument.spreadsheet-flat-xml', |
---|
214 | '.fodt': 'application/vnd.oasis.opendocument.text-flat-xml', |
---|
215 | '.for': 'text/x-fortran', |
---|
216 | '.fxm': 'video/x-javafx', |
---|
217 | '.g3': 'image/fax-g3', |
---|
218 | '.gb': 'application/x-gameboy-rom', |
---|
219 | '.gba': 'application/x-gba-rom', |
---|
220 | '.gcrd': 'text/vcard', |
---|
221 | '.ged': 'application/x-gedcom', |
---|
222 | '.gedcom': 'application/x-gedcom', |
---|
223 | '.gem': 'application/x-tar', |
---|
224 | '.gen': 'application/x-genesis-rom', |
---|
225 | '.gf': 'application/x-tex-gf', |
---|
226 | '.gg': 'application/x-sms-rom', |
---|
227 | '.gif': 'image/gif', |
---|
228 | '.glade': 'application/x-glade', |
---|
229 | '.gml': 'application/gml+xml', |
---|
230 | '.gmo': 'application/x-gettext-translation', |
---|
231 | '.gnc': 'application/x-gnucash', |
---|
232 | '.gnd': 'application/gnunet-directory', |
---|
233 | '.gnucash': 'application/x-gnucash', |
---|
234 | '.gnumeric': 'application/x-gnumeric', |
---|
235 | '.gnuplot': 'application/x-gnuplot', |
---|
236 | '.go': 'text/x-go', |
---|
237 | '.gp': 'application/x-gnuplot', |
---|
238 | '.gpg': 'application/pgp-encrypted', |
---|
239 | '.gplt': 'application/x-gnuplot', |
---|
240 | '.gra': 'application/x-graphite', |
---|
241 | '.gsf': 'application/x-font-type1', |
---|
242 | '.gsm': 'audio/x-gsm', |
---|
243 | '.gtar': 'application/x-tar', |
---|
244 | '.gv': 'text/vnd.graphviz', |
---|
245 | '.gvp': 'text/x-google-video-pointer', |
---|
246 | '.gz': 'application/gzip', |
---|
247 | '.h': 'text/x-chdr', |
---|
248 | '.h++': 'text/x-c++hdr', |
---|
249 | '.h4': 'application/x-hdf', |
---|
250 | '.h5': 'application/x-hdf', |
---|
251 | '.hdf': 'application/x-hdf', |
---|
252 | '.hdf4': 'application/x-hdf', |
---|
253 | '.hdf5': 'application/x-hdf', |
---|
254 | '.hh': 'text/x-c++hdr', |
---|
255 | '.hlp': 'application/winhlp', |
---|
256 | '.hp': 'text/x-c++hdr', |
---|
257 | '.hpgl': 'application/vnd.hp-hpgl', |
---|
258 | '.hpp': 'text/x-c++hdr', |
---|
259 | '.hs': 'text/x-haskell', |
---|
260 | '.htm': 'text/html', |
---|
261 | '.html': 'text/html', |
---|
262 | '.hwp': 'application/x-hwp', |
---|
263 | '.hwt': 'application/x-hwt', |
---|
264 | '.hxx': 'text/x-c++hdr', |
---|
265 | '.ica': 'application/x-ica', |
---|
266 | '.icb': 'image/x-tga', |
---|
267 | '.icc': 'application/vnd.iccprofile', |
---|
268 | '.icm': 'application/vnd.iccprofile', |
---|
269 | '.icns': 'image/x-icns', |
---|
270 | '.ico': 'image/vnd.microsoft.icon', |
---|
271 | '.ics': 'text/calendar', |
---|
272 | '.idl': 'text/x-idl', |
---|
273 | '.ief': 'image/ief', |
---|
274 | '.iff': 'image/x-ilbm', |
---|
275 | '.ilbm': 'image/x-ilbm', |
---|
276 | '.ime': 'text/x-imelody', |
---|
277 | '.imy': 'text/x-imelody', |
---|
278 | '.ins': 'text/x-tex', |
---|
279 | '.iptables': 'text/x-iptables', |
---|
280 | '.iso': 'application/x-cd-image', |
---|
281 | '.iso9660': 'application/x-cd-image', |
---|
282 | '.it': 'audio/x-it', |
---|
283 | '.it87': 'application/x-it87', |
---|
284 | '.j2k': 'image/jp2', |
---|
285 | '.jad': 'text/vnd.sun.j2me.app-descriptor', |
---|
286 | '.jar': 'application/x-java-archive', |
---|
287 | '.java': 'text/x-java', |
---|
288 | '.jceks': 'application/x-java-jce-keystore', |
---|
289 | '.jks': 'application/x-java-keystore', |
---|
290 | '.jng': 'image/x-jng', |
---|
291 | '.jnlp': 'application/x-java-jnlp-file', |
---|
292 | '.jp2': 'image/jp2', |
---|
293 | '.jpc': 'image/jp2', |
---|
294 | '.jpe': 'image/jpeg', |
---|
295 | '.jpeg': 'image/jpeg', |
---|
296 | '.jpf': 'image/jp2', |
---|
297 | '.jpg': 'image/jpeg', |
---|
298 | '.jpr': 'application/x-jbuilder-project', |
---|
299 | '.jpx': 'image/jp2', |
---|
300 | '.js': 'application/javascript', |
---|
301 | '.json': 'application/json', |
---|
302 | '.jsonp': 'application/jsonp', |
---|
303 | '.k25': 'image/x-kodak-k25', |
---|
304 | '.kar': 'audio/midi', |
---|
305 | '.karbon': 'application/x-karbon', |
---|
306 | '.kdc': 'image/x-kodak-kdc', |
---|
307 | '.kdelnk': 'application/x-desktop', |
---|
308 | '.kexi': 'application/x-kexiproject-sqlite3', |
---|
309 | '.kexic': 'application/x-kexi-connectiondata', |
---|
310 | '.kexis': 'application/x-kexiproject-shortcut', |
---|
311 | '.kfo': 'application/x-kformula', |
---|
312 | '.kil': 'application/x-killustrator', |
---|
313 | '.kino': 'application/smil', |
---|
314 | '.kml': 'application/vnd.google-earth.kml+xml', |
---|
315 | '.kmz': 'application/vnd.google-earth.kmz', |
---|
316 | '.kon': 'application/x-kontour', |
---|
317 | '.kpm': 'application/x-kpovmodeler', |
---|
318 | '.kpr': 'application/x-kpresenter', |
---|
319 | '.kpt': 'application/x-kpresenter', |
---|
320 | '.kra': 'application/x-krita', |
---|
321 | '.ks': 'application/x-java-keystore', |
---|
322 | '.ksp': 'application/x-kspread', |
---|
323 | '.kud': 'application/x-kugar', |
---|
324 | '.kwd': 'application/x-kword', |
---|
325 | '.kwt': 'application/x-kword', |
---|
326 | '.la': 'application/x-shared-library-la', |
---|
327 | '.latex': 'text/x-tex', |
---|
328 | '.lbm': 'image/x-ilbm', |
---|
329 | '.ldif': 'text/x-ldif', |
---|
330 | '.lha': 'application/x-lha', |
---|
331 | '.lhs': 'text/x-literate-haskell', |
---|
332 | '.lhz': 'application/x-lhz', |
---|
333 | '.load': 'text/html', |
---|
334 | '.log': 'text/x-log', |
---|
335 | '.lrz': 'application/x-lrzip', |
---|
336 | '.ltx': 'text/x-tex', |
---|
337 | '.lua': 'text/x-lua', |
---|
338 | '.lwo': 'image/x-lwo', |
---|
339 | '.lwob': 'image/x-lwo', |
---|
340 | '.lwp': 'application/vnd.lotus-wordpro', |
---|
341 | '.lws': 'image/x-lws', |
---|
342 | '.ly': 'text/x-lilypond', |
---|
343 | '.lyx': 'application/x-lyx', |
---|
344 | '.lz': 'application/x-lzip', |
---|
345 | '.lzh': 'application/x-lha', |
---|
346 | '.lzma': 'application/x-lzma', |
---|
347 | '.lzo': 'application/x-lzop', |
---|
348 | '.m': 'text/x-matlab', |
---|
349 | '.m15': 'audio/x-mod', |
---|
350 | '.m1u': 'video/vnd.mpegurl', |
---|
351 | '.m2t': 'video/mp2t', |
---|
352 | '.m2ts': 'video/mp2t', |
---|
353 | '.m3u': 'application/vnd.apple.mpegurl', |
---|
354 | '.m3u8': 'application/vnd.apple.mpegurl', |
---|
355 | '.m4': 'application/x-m4', |
---|
356 | '.m4a': 'audio/mp4', |
---|
357 | '.m4b': 'audio/x-m4b', |
---|
358 | '.m4u': 'video/vnd.mpegurl', |
---|
359 | '.m4v': 'video/mp4', |
---|
360 | '.mab': 'application/x-markaby', |
---|
361 | '.mak': 'text/x-makefile', |
---|
362 | '.man': 'application/x-troff-man', |
---|
363 | '.manifest': 'text/cache-manifest', |
---|
364 | '.markdown': 'text/x-markdown', |
---|
365 | '.mbox': 'application/mbox', |
---|
366 | '.md': 'text/x-markdown', |
---|
367 | '.mdb': 'application/vnd.ms-access', |
---|
368 | '.mdi': 'image/vnd.ms-modi', |
---|
369 | '.me': 'text/x-troff-me', |
---|
370 | '.med': 'audio/x-mod', |
---|
371 | '.meta4': 'application/metalink4+xml', |
---|
372 | '.metalink': 'application/metalink+xml', |
---|
373 | '.mgp': 'application/x-magicpoint', |
---|
374 | '.mht': 'application/x-mimearchive', |
---|
375 | '.mhtml': 'application/x-mimearchive', |
---|
376 | '.mid': 'audio/midi', |
---|
377 | '.midi': 'audio/midi', |
---|
378 | '.mif': 'application/x-mif', |
---|
379 | '.minipsf': 'audio/x-minipsf', |
---|
380 | '.mk': 'text/x-makefile', |
---|
381 | '.mka': 'audio/x-matroska', |
---|
382 | '.mkd': 'text/x-markdown', |
---|
383 | '.mkv': 'video/x-matroska', |
---|
384 | '.ml': 'text/x-ocaml', |
---|
385 | '.mli': 'text/x-ocaml', |
---|
386 | '.mm': 'text/x-troff-mm', |
---|
387 | '.mmf': 'application/x-smaf', |
---|
388 | '.mml': 'application/mathml+xml', |
---|
389 | '.mng': 'video/x-mng', |
---|
390 | '.mo': 'text/x-modelica', |
---|
391 | '.mo3': 'audio/x-mo3', |
---|
392 | '.mobi': 'application/x-mobipocket-ebook', |
---|
393 | '.moc': 'text/x-moc', |
---|
394 | '.mod': 'audio/x-mod', |
---|
395 | '.mof': 'text/x-mof', |
---|
396 | '.moov': 'video/quicktime', |
---|
397 | '.mov': 'video/quicktime', |
---|
398 | '.movie': 'video/x-sgi-movie', |
---|
399 | '.mp+': 'audio/x-musepack', |
---|
400 | '.mp2': 'video/mpeg', |
---|
401 | '.mp3': 'audio/mpeg', |
---|
402 | '.mp4': 'video/mp4', |
---|
403 | '.mpc': 'audio/x-musepack', |
---|
404 | '.mpe': 'video/mpeg', |
---|
405 | '.mpeg': 'video/mpeg', |
---|
406 | '.mpg': 'video/mpeg', |
---|
407 | '.mpga': 'audio/mpeg', |
---|
408 | '.mpl': 'video/mp2t', |
---|
409 | '.mpls': 'video/mp2t', |
---|
410 | '.mpp': 'audio/x-musepack', |
---|
411 | '.mrl': 'text/x-mrml', |
---|
412 | '.mrml': 'text/x-mrml', |
---|
413 | '.mrw': 'image/x-minolta-mrw', |
---|
414 | '.ms': 'text/x-troff-ms', |
---|
415 | '.msi': 'application/x-msi', |
---|
416 | '.msod': 'image/x-msod', |
---|
417 | '.msx': 'application/x-msx-rom', |
---|
418 | '.mtm': 'audio/x-mod', |
---|
419 | '.mts': 'video/mp2t', |
---|
420 | '.mup': 'text/x-mup', |
---|
421 | '.mxf': 'application/mxf', |
---|
422 | '.mxu': 'video/vnd.mpegurl', |
---|
423 | '.n64': 'application/x-n64-rom', |
---|
424 | '.nb': 'application/mathematica', |
---|
425 | '.nc': 'application/x-netcdf', |
---|
426 | '.nds': 'application/x-nintendo-ds-rom', |
---|
427 | '.nef': 'image/x-nikon-nef', |
---|
428 | '.nes': 'application/x-nes-rom', |
---|
429 | '.nfo': 'text/x-nfo', |
---|
430 | '.not': 'text/x-mup', |
---|
431 | '.nsc': 'application/x-netshow-channel', |
---|
432 | '.nsv': 'video/x-nsv', |
---|
433 | '.nzb': 'application/x-nzb', |
---|
434 | '.o': 'application/x-object', |
---|
435 | '.obj': 'application/x-tgif', |
---|
436 | '.ocl': 'text/x-ocl', |
---|
437 | '.oda': 'application/oda', |
---|
438 | '.odb': 'application/vnd.oasis.opendocument.database', |
---|
439 | '.odc': 'application/vnd.oasis.opendocument.chart', |
---|
440 | '.odf': 'application/vnd.oasis.opendocument.formula', |
---|
441 | '.odg': 'application/vnd.oasis.opendocument.graphics', |
---|
442 | '.odi': 'application/vnd.oasis.opendocument.image', |
---|
443 | '.odm': 'application/vnd.oasis.opendocument.text-master', |
---|
444 | '.odp': 'application/vnd.oasis.opendocument.presentation', |
---|
445 | '.ods': 'application/vnd.oasis.opendocument.spreadsheet', |
---|
446 | '.odt': 'application/vnd.oasis.opendocument.text', |
---|
447 | '.oga': 'audio/ogg', |
---|
448 | '.ogg': 'application/ogg', |
---|
449 | '.ogm': 'video/x-ogm+ogg', |
---|
450 | '.ogv': 'video/ogg', |
---|
451 | '.ogx': 'application/ogg', |
---|
452 | '.old': 'application/x-trash', |
---|
453 | '.oleo': 'application/x-oleo', |
---|
454 | '.ooc': 'text/x-ooc', |
---|
455 | '.opml': 'text/x-opml+xml', |
---|
456 | '.oprc': 'application/vnd.palm', |
---|
457 | '.ora': 'image/openraster', |
---|
458 | '.orf': 'image/x-olympus-orf', |
---|
459 | '.otc': 'application/vnd.oasis.opendocument.chart-template', |
---|
460 | '.otf': 'application/x-font-otf', |
---|
461 | '.otg': 'application/vnd.oasis.opendocument.graphics-template', |
---|
462 | '.oth': 'application/vnd.oasis.opendocument.text-web', |
---|
463 | '.otp': 'application/vnd.oasis.opendocument.presentation-template', |
---|
464 | '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template', |
---|
465 | '.ott': 'application/vnd.oasis.opendocument.text-template', |
---|
466 | '.owl': 'application/rdf+xml', |
---|
467 | '.oxps': 'application/oxps', |
---|
468 | '.oxt': 'application/vnd.openofficeorg.extension', |
---|
469 | '.p': 'text/x-pascal', |
---|
470 | '.p10': 'application/pkcs10', |
---|
471 | '.p12': 'application/x-pkcs12', |
---|
472 | '.p7b': 'application/x-pkcs7-certificates', |
---|
473 | '.p7c': 'application/pkcs7-mime', |
---|
474 | '.p7m': 'application/pkcs7-mime', |
---|
475 | '.p7s': 'application/pkcs7-signature', |
---|
476 | '.p8': 'application/pkcs8', |
---|
477 | '.pack': 'application/x-java-pack200', |
---|
478 | '.pak': 'application/x-pak', |
---|
479 | '.par2': 'application/x-par2', |
---|
480 | '.pas': 'text/x-pascal', |
---|
481 | '.patch': 'text/x-patch', |
---|
482 | '.pbm': 'image/x-portable-bitmap', |
---|
483 | '.pcap': 'application/vnd.tcpdump.pcap', |
---|
484 | '.pcd': 'image/x-photo-cd', |
---|
485 | '.pcf': 'application/x-cisco-vpn-settings', |
---|
486 | '.pcf.gz': 'application/x-font-pcf', |
---|
487 | '.pcf.z': 'application/x-font-pcf', |
---|
488 | '.pcl': 'application/vnd.hp-pcl', |
---|
489 | '.pct': 'image/x-pict', |
---|
490 | '.pcx': 'image/x-pcx', |
---|
491 | '.pdb': 'chemical/x-pdb', |
---|
492 | '.pdc': 'application/x-aportisdoc', |
---|
493 | '.pdf': 'application/pdf', |
---|
494 | '.pdf.bz2': 'application/x-bzpdf', |
---|
495 | '.pdf.gz': 'application/x-gzpdf', |
---|
496 | '.pdf.xz': 'application/x-xzpdf', |
---|
497 | '.pef': 'image/x-pentax-pef', |
---|
498 | '.pem': 'application/x-x509-ca-cert', |
---|
499 | '.perl': 'application/x-perl', |
---|
500 | '.pfa': 'application/x-font-type1', |
---|
501 | '.pfb': 'application/x-font-type1', |
---|
502 | '.pfx': 'application/x-pkcs12', |
---|
503 | '.pgm': 'image/x-portable-graymap', |
---|
504 | '.pgn': 'application/x-chess-pgn', |
---|
505 | '.pgp': 'application/pgp-encrypted', |
---|
506 | '.php': 'application/x-php', |
---|
507 | '.php3': 'application/x-php', |
---|
508 | '.php4': 'application/x-php', |
---|
509 | '.php5': 'application/x-php', |
---|
510 | '.phps': 'application/x-php', |
---|
511 | '.pict': 'image/x-pict', |
---|
512 | '.pict1': 'image/x-pict', |
---|
513 | '.pict2': 'image/x-pict', |
---|
514 | '.pk': 'application/x-tex-pk', |
---|
515 | '.pkipath': 'application/pkix-pkipath', |
---|
516 | '.pkr': 'application/pgp-keys', |
---|
517 | '.pl': 'application/x-perl', |
---|
518 | '.pla': 'audio/x-iriver-pla', |
---|
519 | '.pln': 'application/x-planperfect', |
---|
520 | '.pls': 'audio/x-scpls', |
---|
521 | '.pm': 'application/x-perl', |
---|
522 | '.png': 'image/png', |
---|
523 | '.pnm': 'image/x-portable-anymap', |
---|
524 | '.pntg': 'image/x-macpaint', |
---|
525 | '.po': 'text/x-gettext-translation', |
---|
526 | '.por': 'application/x-spss-por', |
---|
527 | '.pot': 'text/x-gettext-translation-template', |
---|
528 | '.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12', |
---|
529 | '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template', |
---|
530 | '.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12', |
---|
531 | '.ppm': 'image/x-portable-pixmap', |
---|
532 | '.pps': 'application/vnd.ms-powerpoint', |
---|
533 | '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', |
---|
534 | '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', |
---|
535 | '.ppt': 'application/vnd.ms-powerpoint', |
---|
536 | '.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12', |
---|
537 | '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', |
---|
538 | '.ppz': 'application/vnd.ms-powerpoint', |
---|
539 | '.pqa': 'application/vnd.palm', |
---|
540 | '.prc': 'application/vnd.palm', |
---|
541 | '.ps': 'application/postscript', |
---|
542 | '.ps.bz2': 'application/x-bzpostscript', |
---|
543 | '.ps.gz': 'application/x-gzpostscript', |
---|
544 | '.psd': 'image/vnd.adobe.photoshop', |
---|
545 | '.psf': 'audio/x-psf', |
---|
546 | '.psf.gz': 'application/x-gz-font-linux-psf', |
---|
547 | '.psflib': 'audio/x-psflib', |
---|
548 | '.psid': 'audio/prs.sid', |
---|
549 | '.psw': 'application/x-pocket-word', |
---|
550 | '.pw': 'application/x-pw', |
---|
551 | '.py': 'text/x-python', |
---|
552 | '.pyc': 'application/x-python-bytecode', |
---|
553 | '.pickle': 'application/python-pickle', |
---|
554 | '.pyo': 'application/x-python-bytecode', |
---|
555 | '.qif': 'image/x-quicktime', |
---|
556 | '.qml': 'text/x-qml', |
---|
557 | '.qt': 'video/quicktime', |
---|
558 | '.qti': 'application/x-qtiplot', |
---|
559 | '.qti.gz': 'application/x-qtiplot', |
---|
560 | '.qtif': 'image/x-quicktime', |
---|
561 | '.qtl': 'application/x-quicktime-media-link', |
---|
562 | '.qtvr': 'video/quicktime', |
---|
563 | '.ra': 'audio/vnd.rn-realaudio', |
---|
564 | '.raf': 'image/x-fuji-raf', |
---|
565 | '.ram': 'application/ram', |
---|
566 | '.rar': 'application/x-rar', |
---|
567 | '.ras': 'image/x-cmu-raster', |
---|
568 | '.raw': 'image/x-panasonic-raw', |
---|
569 | '.rax': 'audio/vnd.rn-realaudio', |
---|
570 | '.rb': 'application/x-ruby', |
---|
571 | '.rdf': 'application/rdf+xml', |
---|
572 | '.rdfs': 'application/rdf+xml', |
---|
573 | '.reg': 'text/x-ms-regedit', |
---|
574 | '.rej': 'text/x-reject', |
---|
575 | '.rgb': 'image/x-rgb', |
---|
576 | '.rle': 'image/rle', |
---|
577 | '.rm': 'application/vnd.rn-realmedia', |
---|
578 | '.rmj': 'application/vnd.rn-realmedia', |
---|
579 | '.rmm': 'application/vnd.rn-realmedia', |
---|
580 | '.rms': 'application/vnd.rn-realmedia', |
---|
581 | '.rmvb': 'application/vnd.rn-realmedia', |
---|
582 | '.rmx': 'application/vnd.rn-realmedia', |
---|
583 | '.rnc': 'application/relax-ng-compact-syntax', |
---|
584 | '.rng': 'application/xml', |
---|
585 | '.roff': 'text/troff', |
---|
586 | '.rp': 'image/vnd.rn-realpix', |
---|
587 | '.rpm': 'application/x-rpm', |
---|
588 | '.rss': 'application/rss+xml', |
---|
589 | '.rt': 'text/vnd.rn-realtext', |
---|
590 | '.rtf': 'application/rtf', |
---|
591 | '.rtx': 'text/richtext', |
---|
592 | '.rv': 'video/vnd.rn-realvideo', |
---|
593 | '.rvx': 'video/vnd.rn-realvideo', |
---|
594 | '.rw2': 'image/x-panasonic-raw2', |
---|
595 | '.s3m': 'audio/x-s3m', |
---|
596 | '.sam': 'application/x-amipro', |
---|
597 | '.sami': 'application/x-sami', |
---|
598 | '.sav': 'application/x-spss-sav', |
---|
599 | '.scala': 'text/x-scala', |
---|
600 | '.scm': 'text/x-scheme', |
---|
601 | '.sda': 'application/vnd.stardivision.draw', |
---|
602 | '.sdc': 'application/vnd.stardivision.calc', |
---|
603 | '.sdd': 'application/vnd.stardivision.impress', |
---|
604 | '.sdp': 'application/sdp', |
---|
605 | '.sds': 'application/vnd.stardivision.chart', |
---|
606 | '.sdw': 'application/vnd.stardivision.writer', |
---|
607 | '.sgf': 'application/x-go-sgf', |
---|
608 | '.sgi': 'image/x-sgi', |
---|
609 | '.sgl': 'application/vnd.stardivision.writer', |
---|
610 | '.sgm': 'text/sgml', |
---|
611 | '.sgml': 'text/sgml', |
---|
612 | '.sh': 'application/x-shellscript', |
---|
613 | '.shape': 'application/x-dia-shape', |
---|
614 | '.shar': 'application/x-shar', |
---|
615 | '.shn': 'application/x-shorten', |
---|
616 | '.siag': 'application/x-siag', |
---|
617 | '.sid': 'audio/prs.sid', |
---|
618 | '.sik': 'application/x-trash', |
---|
619 | '.sis': 'application/vnd.symbian.install', |
---|
620 | '.sisx': 'x-epoc/x-sisx-app', |
---|
621 | '.sit': 'application/x-stuffit', |
---|
622 | '.siv': 'application/sieve', |
---|
623 | '.sk': 'image/x-skencil', |
---|
624 | '.sk1': 'image/x-skencil', |
---|
625 | '.skr': 'application/pgp-keys', |
---|
626 | '.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12', |
---|
627 | '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide', |
---|
628 | '.slk': 'text/spreadsheet', |
---|
629 | '.smaf': 'application/x-smaf', |
---|
630 | '.smc': 'application/x-snes-rom', |
---|
631 | '.smd': 'application/vnd.stardivision.mail', |
---|
632 | '.smf': 'application/vnd.stardivision.math', |
---|
633 | '.smi': 'application/x-sami', |
---|
634 | '.smil': 'application/smil', |
---|
635 | '.sml': 'application/smil', |
---|
636 | '.sms': 'application/x-sms-rom', |
---|
637 | '.snd': 'audio/basic', |
---|
638 | '.so': 'application/x-sharedlib', |
---|
639 | '.spc': 'application/x-pkcs7-certificates', |
---|
640 | '.spd': 'application/x-font-speedo', |
---|
641 | '.spec': 'text/x-rpm-spec', |
---|
642 | '.spl': 'application/x-shockwave-flash', |
---|
643 | '.spm': 'application/x-source-rpm', |
---|
644 | '.spx': 'audio/x-speex', |
---|
645 | '.sql': 'text/x-sql', |
---|
646 | '.sr2': 'image/x-sony-sr2', |
---|
647 | '.src': 'application/x-wais-source', |
---|
648 | '.src.rpm': 'application/x-source-rpm', |
---|
649 | '.srf': 'image/x-sony-srf', |
---|
650 | '.srt': 'application/x-subrip', |
---|
651 | '.ss': 'text/x-scheme', |
---|
652 | '.ssa': 'text/x-ssa', |
---|
653 | '.stc': 'application/vnd.sun.xml.calc.template', |
---|
654 | '.std': 'application/vnd.sun.xml.draw.template', |
---|
655 | '.sti': 'application/vnd.sun.xml.impress.template', |
---|
656 | '.stm': 'audio/x-stm', |
---|
657 | '.stw': 'application/vnd.sun.xml.writer.template', |
---|
658 | '.sty': 'text/x-tex', |
---|
659 | '.sub': 'text/x-subviewer', |
---|
660 | '.sun': 'image/x-sun-raster', |
---|
661 | '.sv': 'text/x-svsrc', |
---|
662 | '.sv4cpio': 'application/x-sv4cpio', |
---|
663 | '.sv4crc': 'application/x-sv4crc', |
---|
664 | '.svg': 'image/svg+xml', |
---|
665 | '.svgz': 'image/svg+xml-compressed', |
---|
666 | '.svh': 'text/x-svhdr', |
---|
667 | '.swf': 'application/x-shockwave-flash', |
---|
668 | '.swm': 'application/x-ms-wim', |
---|
669 | '.sxc': 'application/vnd.sun.xml.calc', |
---|
670 | '.sxd': 'application/vnd.sun.xml.draw', |
---|
671 | '.sxg': 'application/vnd.sun.xml.writer.global', |
---|
672 | '.sxi': 'application/vnd.sun.xml.impress', |
---|
673 | '.sxm': 'application/vnd.sun.xml.math', |
---|
674 | '.sxw': 'application/vnd.sun.xml.writer', |
---|
675 | '.sylk': 'text/spreadsheet', |
---|
676 | '.t': 'text/troff', |
---|
677 | '.t2t': 'text/x-txt2tags', |
---|
678 | '.tar': 'application/x-tar', |
---|
679 | '.tar.bz': 'application/x-bzip-compressed-tar', |
---|
680 | '.tar.bz2': 'application/x-bzip-compressed-tar', |
---|
681 | '.tar.gz': 'application/x-compressed-tar', |
---|
682 | '.tar.lrz': 'application/x-lrzip-compressed-tar', |
---|
683 | '.tar.lzma': 'application/x-lzma-compressed-tar', |
---|
684 | '.tar.lzo': 'application/x-tzo', |
---|
685 | '.tar.xz': 'application/x-xz-compressed-tar', |
---|
686 | '.tar.z': 'application/x-tarz', |
---|
687 | '.taz': 'application/x-tarz', |
---|
688 | '.tb2': 'application/x-bzip-compressed-tar', |
---|
689 | '.tbz': 'application/x-bzip-compressed-tar', |
---|
690 | '.tbz2': 'application/x-bzip-compressed-tar', |
---|
691 | '.tcl': 'text/x-tcl', |
---|
692 | '.tex': 'text/x-tex', |
---|
693 | '.texi': 'text/x-texinfo', |
---|
694 | '.texinfo': 'text/x-texinfo', |
---|
695 | '.tga': 'image/x-tga', |
---|
696 | '.tgz': 'application/x-compressed-tar', |
---|
697 | '.theme': 'application/x-theme', |
---|
698 | '.themepack': 'application/x-windows-themepack', |
---|
699 | '.tif': 'image/tiff', |
---|
700 | '.tiff': 'image/tiff', |
---|
701 | '.tk': 'text/x-tcl', |
---|
702 | '.tlrz': 'application/x-lrzip-compressed-tar', |
---|
703 | '.tlz': 'application/x-lzma-compressed-tar', |
---|
704 | '.tnef': 'application/vnd.ms-tnef', |
---|
705 | '.tnf': 'application/vnd.ms-tnef', |
---|
706 | '.toc': 'application/x-cdrdao-toc', |
---|
707 | '.torrent': 'application/x-bittorrent', |
---|
708 | '.tpic': 'image/x-tga', |
---|
709 | '.tr': 'text/troff', |
---|
710 | '.ts': 'video/mp2t', |
---|
711 | '.tsv': 'text/tab-separated-values', |
---|
712 | '.tta': 'audio/x-tta', |
---|
713 | '.ttc': 'application/x-font-ttf', |
---|
714 | '.ttf': 'application/x-font-ttf', |
---|
715 | '.ttx': 'application/x-font-ttx', |
---|
716 | '.txt': 'text/plain', |
---|
717 | '.txz': 'application/x-xz-compressed-tar', |
---|
718 | '.tzo': 'application/x-tzo', |
---|
719 | '.ufraw': 'application/x-ufraw', |
---|
720 | '.ui': 'application/x-gtk-builder', |
---|
721 | '.uil': 'text/x-uil', |
---|
722 | '.ult': 'audio/x-mod', |
---|
723 | '.uni': 'audio/x-mod', |
---|
724 | '.url': 'application/x-mswinurl', |
---|
725 | '.ustar': 'application/x-ustar', |
---|
726 | '.uue': 'text/x-uuencode', |
---|
727 | '.v': 'text/x-verilog', |
---|
728 | '.vala': 'text/x-vala', |
---|
729 | '.vapi': 'text/x-vala', |
---|
730 | '.vcard': 'text/vcard', |
---|
731 | '.vcf': 'text/vcard', |
---|
732 | '.vcs': 'text/calendar', |
---|
733 | '.vct': 'text/vcard', |
---|
734 | '.vda': 'image/x-tga', |
---|
735 | '.vhd': 'text/x-vhdl', |
---|
736 | '.vhdl': 'text/x-vhdl', |
---|
737 | '.viv': 'video/vivo', |
---|
738 | '.vivo': 'video/vivo', |
---|
739 | '.vlc': 'audio/x-mpegurl', |
---|
740 | '.vob': 'video/mpeg', |
---|
741 | '.voc': 'audio/x-voc', |
---|
742 | '.vor': 'application/vnd.stardivision.writer', |
---|
743 | '.vrm': 'model/vrml', |
---|
744 | '.vrml': 'model/vrml', |
---|
745 | '.vsd': 'application/vnd.visio', |
---|
746 | '.vss': 'application/vnd.visio', |
---|
747 | '.vst': 'image/x-tga', |
---|
748 | '.vsw': 'application/vnd.visio', |
---|
749 | '.vtt': 'text/vtt', |
---|
750 | '.w2p': 'application/w2p', |
---|
751 | '.wav': 'audio/x-wav', |
---|
752 | '.wax': 'audio/x-ms-asx', |
---|
753 | '.wb1': 'application/x-quattropro', |
---|
754 | '.wb2': 'application/x-quattropro', |
---|
755 | '.wb3': 'application/x-quattropro', |
---|
756 | '.wbmp': 'image/vnd.wap.wbmp', |
---|
757 | '.wcm': 'application/vnd.ms-works', |
---|
758 | '.wdb': 'application/vnd.ms-works', |
---|
759 | '.webm': 'video/webm', |
---|
760 | '.wim': 'application/x-ms-wim', |
---|
761 | '.wk1': 'application/vnd.lotus-1-2-3', |
---|
762 | '.wk3': 'application/vnd.lotus-1-2-3', |
---|
763 | '.wk4': 'application/vnd.lotus-1-2-3', |
---|
764 | '.wks': 'application/vnd.ms-works', |
---|
765 | '.wma': 'audio/x-ms-wma', |
---|
766 | '.wmf': 'image/x-wmf', |
---|
767 | '.wml': 'text/vnd.wap.wml', |
---|
768 | '.wmls': 'text/vnd.wap.wmlscript', |
---|
769 | '.wmv': 'video/x-ms-wmv', |
---|
770 | '.wmx': 'audio/x-ms-asx', |
---|
771 | '.woff': 'application/font-woff', |
---|
772 | '.wp': 'application/vnd.wordperfect', |
---|
773 | '.wp4': 'application/vnd.wordperfect', |
---|
774 | '.wp5': 'application/vnd.wordperfect', |
---|
775 | '.wp6': 'application/vnd.wordperfect', |
---|
776 | '.wpd': 'application/vnd.wordperfect', |
---|
777 | '.wpg': 'application/x-wpg', |
---|
778 | '.wpl': 'application/vnd.ms-wpl', |
---|
779 | '.wpp': 'application/vnd.wordperfect', |
---|
780 | '.wps': 'application/vnd.ms-works', |
---|
781 | '.wri': 'application/x-mswrite', |
---|
782 | '.wrl': 'model/vrml', |
---|
783 | '.wsgi': 'text/x-python', |
---|
784 | '.wv': 'audio/x-wavpack', |
---|
785 | '.wvc': 'audio/x-wavpack-correction', |
---|
786 | '.wvp': 'audio/x-wavpack', |
---|
787 | '.wvx': 'audio/x-ms-asx', |
---|
788 | '.wwf': 'application/x-wwf', |
---|
789 | '.x3f': 'image/x-sigma-x3f', |
---|
790 | '.xac': 'application/x-gnucash', |
---|
791 | '.xbel': 'application/x-xbel', |
---|
792 | '.xbl': 'application/xml', |
---|
793 | '.xbm': 'image/x-xbitmap', |
---|
794 | '.xcf': 'image/x-xcf', |
---|
795 | '.xcf.bz2': 'image/x-compressed-xcf', |
---|
796 | '.xcf.gz': 'image/x-compressed-xcf', |
---|
797 | '.xhtml': 'application/xhtml+xml', |
---|
798 | '.xi': 'audio/x-xi', |
---|
799 | '.xla': 'application/vnd.ms-excel', |
---|
800 | '.xlam': 'application/vnd.ms-excel.addin.macroenabled.12', |
---|
801 | '.xlc': 'application/vnd.ms-excel', |
---|
802 | '.xld': 'application/vnd.ms-excel', |
---|
803 | '.xlf': 'application/x-xliff', |
---|
804 | '.xliff': 'application/x-xliff', |
---|
805 | '.xll': 'application/vnd.ms-excel', |
---|
806 | '.xlm': 'application/vnd.ms-excel', |
---|
807 | '.xlr': 'application/vnd.ms-works', |
---|
808 | '.xls': 'application/vnd.ms-excel', |
---|
809 | '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12', |
---|
810 | '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12', |
---|
811 | '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
---|
812 | '.xlt': 'application/vnd.ms-excel', |
---|
813 | '.xltm': 'application/vnd.ms-excel.template.macroenabled.12', |
---|
814 | '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', |
---|
815 | '.xlw': 'application/vnd.ms-excel', |
---|
816 | '.xm': 'audio/x-xm', |
---|
817 | '.xmf': 'audio/x-xmf', |
---|
818 | '.xmi': 'text/x-xmi', |
---|
819 | '.xml': 'application/xml', |
---|
820 | '.xpi': 'application/x-xpinstall', |
---|
821 | '.xpm': 'image/x-xpixmap', |
---|
822 | '.xps': 'application/oxps', |
---|
823 | '.xsd': 'application/xml', |
---|
824 | '.xsl': 'application/xslt+xml', |
---|
825 | '.xslfo': 'text/x-xslfo', |
---|
826 | '.xslm': 'application/vnd.ms-excel.sheet.macroEnabled.12', |
---|
827 | '.xslt': 'application/xslt+xml', |
---|
828 | '.xspf': 'application/xspf+xml', |
---|
829 | '.xul': 'application/vnd.mozilla.xul+xml', |
---|
830 | '.xwd': 'image/x-xwindowdump', |
---|
831 | '.xyz': 'chemical/x-pdb', |
---|
832 | '.xz': 'application/x-xz', |
---|
833 | '.yaml': 'application/x-yaml', |
---|
834 | '.yml': 'application/x-yaml', |
---|
835 | '.z': 'application/x-compress', |
---|
836 | '.zabw': 'application/x-abiword', |
---|
837 | '.zip': 'application/zip', |
---|
838 | '.zoo': 'application/x-zoo', |
---|
839 | } |
---|
840 | |
---|
841 | |
---|
842 | def contenttype(filename, default='text/plain'): |
---|
843 | """ |
---|
844 | Returns the Content-Type string matching extension of the given filename. |
---|
845 | """ |
---|
846 | filename = to_native(filename) |
---|
847 | i = filename.rfind('.') |
---|
848 | if i >= 0: |
---|
849 | default = CONTENT_TYPE.get(filename[i:].lower(), default) |
---|
850 | j = filename.rfind('.', 0, i) |
---|
851 | if j >= 0: |
---|
852 | default = CONTENT_TYPE.get(filename[j:].lower(), default) |
---|
853 | if default.startswith('text/'): |
---|
854 | default += '; charset=utf-8' |
---|
855 | return default |
---|