Package gluon :: Module contenttype
[hide private]
[frames] | no frames]

Source Code for Module gluon.contenttype

  1  """ 
  2  This file is part of web2py Web Framework (Copyrighted, 2007) 
  3  Developed by Massimo Di Pierro <mdipierro@cs.depaul.edu> 
  4  License: GPL v2 
  5  """ 
  6   
  7  __all__=['contentype'] 
  8   
  9  CONTENT_TYPE={'.ai':'application/postscript', 
 10  '.aif':'audio/x-aiff', 
 11  '.aifc':'audio/x-aiff', 
 12  '.aiff':'audio/x-aiff', 
 13  '.asc':'text/plain', 
 14  '.au':'audio/basic', 
 15  '.avi':'video/x-msvideo', 
 16  '.bcpio':'application/x-bcpio', 
 17  '.bin':'application/octet-stream', 
 18  '.c':'text/plain', 
 19  '.cc':'text/plain', 
 20  '.ccad':'application/clariscad', 
 21  '.cdf':'application/x-netcdf', 
 22  '.class':'application/octet-stream', 
 23  '.cpio':'application/x-cpio', 
 24  '.cpt':'application/mac-compactpro', 
 25  '.csh':'application/x-csh', 
 26  '.css':'text/css', 
 27  '.csv':'text/csv', 
 28  '.dcr':'application/x-director', 
 29  '.dir':'application/x-director', 
 30  '.dms':'application/octet-stream', 
 31  '.doc':'application/msword', 
 32  '.drw':'application/drafting', 
 33  '.dvi':'application/x-dvi', 
 34  '.dwg':'application/acad', 
 35  '.dxf':'application/dxf', 
 36  '.dxr':'application/x-director', 
 37  '.eps':'application/postscript', 
 38  '.etx':'text/x-setext', 
 39  '.exe':'application/octet-stream', 
 40  '.ez':'application/andrew-inset', 
 41  '.f':'text/plain', 
 42  '.f90':'text/plain', 
 43  '.fli':'video/x-fli', 
 44  '.gif':'image/gif', 
 45  '.gtar':'application/x-gtar', 
 46  '.gz':'application/x-gzip', 
 47  '.h':'text/plain', 
 48  '.hdf':'application/x-hdf', 
 49  '.hh':'text/plain', 
 50  '.hqx':'application/mac-binhex40', 
 51  '.htm':'text/html', 
 52  '.html':'text/html', 
 53  '.ice':'x-conference/x-cooltalk', 
 54  '.ief':'image/ief', 
 55  '.iges':'model/iges', 
 56  '.igs':'model/iges', 
 57  '.ips':'application/x-ipscript', 
 58  '.ipx':'application/x-ipix', 
 59  '.jpe':'image/jpeg', 
 60  '.jpeg':'image/jpeg', 
 61  '.jpg':'image/jpeg', 
 62  '.js':'application/x-javascript', 
 63  '.kar':'audio/midi', 
 64  '.latex':'application/x-latex', 
 65  '.lha':'application/octet-stream', 
 66  '.lsp':'application/x-lisp', 
 67  '.lzh':'application/octet-stream', 
 68  '.m':'text/plain', 
 69  '.man':'application/x-troff-man', 
 70  '.me':'application/x-troff-me', 
 71  '.mesh':'model/mesh', 
 72  '.mid':'audio/midi', 
 73  '.midi':'audio/midi', 
 74  '.mif':'application/vnd.mif', 
 75  '.mime':'www/mime', 
 76  '.mov':'video/quicktime', 
 77  '.movie':'video/x-sgi-movie', 
 78  '.mp2':'audio/mpeg', 
 79  '.mp3':'audio/mpeg', 
 80  '.mpe':'video/mpeg', 
 81  '.mpeg':'video/mpeg', 
 82  '.mpg':'video/mpeg', 
 83  '.mpga':'audio/mpeg', 
 84  '.ms':'application/x-troff-ms', 
 85  '.msh':'model/mesh', 
 86  '.nc':'application/x-netcdf', 
 87  '.oda':'application/oda', 
 88  '.pbm':'image/x-portable-bitmap', 
 89  '.pdb':'chemical/x-pdb', 
 90  '.pdf':'application/pdf', 
 91  '.pgm':'image/x-portable-graymap', 
 92  '.pgn':'application/x-chess-pgn', 
 93  '.png':'image/png', 
 94  '.pnm':'image/x-portable-anymap', 
 95  '.pot':'application/mspowerpoint', 
 96  '.ppm':'image/x-portable-pixmap', 
 97  '.pps':'application/mspowerpoint', 
 98  '.ppt':'application/mspowerpoint', 
 99  '.ppz':'application/mspowerpoint', 
100  '.pre':'application/x-freelance', 
101  '.prt':'application/pro_eng', 
102  '.ps':'application/postscript', 
103  '.qt':'video/quicktime', 
104  '.ra':'audio/x-realaudio', 
105  '.ram':'audio/x-pn-realaudio', 
106  '.ras':'image/cmu-raster', 
107  '.rgb':'image/x-rgb', 
108  '.rm':'audio/x-pn-realaudio', 
109  '.roff':'application/x-troff', 
110  '.rpm':'audio/x-pn-realaudio-plugin', 
111  '.rtf':'text/rtf', 
112  '.rtx':'text/richtext', 
113  '.scm':'application/x-lotusscreencam', 
114  '.set':'application/set', 
115  '.sgm':'text/sgml', 
116  '.sgml':'text/sgml', 
117  '.sh':'application/x-sh', 
118  '.shar':'application/x-shar', 
119  '.silo':'model/mesh', 
120  '.sit':'application/x-stuffit', 
121  '.skd':'application/x-koan', 
122  '.skm':'application/x-koan', 
123  '.skp':'application/x-koan', 
124  '.skt':'application/x-koan', 
125  '.smi':'application/smil', 
126  '.smil':'application/smil', 
127  '.snd':'audio/basic', 
128  '.sol':'application/solids', 
129  '.spl':'application/x-futuresplash', 
130  '.src':'application/x-wais-source', 
131  '.step':'application/STEP', 
132  '.stl':'application/SLA', 
133  '.stp':'application/STEP', 
134  '.sv4cpio':'application/x-sv4cpio', 
135  '.sv4crc':'application/x-sv4crc', 
136  '.swf':'application/x-shockwave-flash', 
137  '.t':'application/x-troff', 
138  '.tar':'application/x-tar', 
139  '.tcl':'application/x-tcl', 
140  '.tex':'application/x-tex', 
141  '.texi':'application/x-texinfo', 
142  '.tif':'image/tiff', 
143  '.tiff':'image/tiff', 
144  '.tr':'application/x-troff', 
145  '.tsi':'audio/TSP-audio', 
146  '.tsp':'application/dsptype', 
147  '.tsv':'text/tab-separated-values', 
148  '.txt':'text/plain', 
149  '.unv':'application/i-deas', 
150  '.ustar':'application/x-ustar', 
151  '.vcd':'application/x-cdlink', 
152  '.vda':'application/vda', 
153  '.viv':'video/vnd.vivo', 
154  '.vivo':'video/vnd.vivo', 
155  '.vrml':'model/vrml', 
156  '.wav':'audio/x-wav', 
157  '.wrl':'model/vrml', 
158  '.xbm':'image/x-xbitmap', 
159  '.xlc':'application/vnd.ms-excel', 
160  '.xll':'application/vnd.ms-excel', 
161  '.xlm':'application/vnd.ms-excel', 
162  '.xls':'application/vnd.ms-excel', 
163  '.xlw':'application/vnd.ms-excel', 
164  '.xml':'text/xml', 
165  '.xpm':'image/x-xpixmap', 
166  '.xsl':'application/xml', 
167  '.xwd':'image/x-xwindowdump', 
168  '.xyz':'chemical/x-pdb', 
169  '.zip':'application/zip'} 
170   
171 -def contenttype(filename):
172 """ 173 returns the Content-Type: string given the extension in the filename. 174 """ 175 i=filename.rfind('.') 176 if i<0: return 'text/plain' 177 try: return CONTENT_TYPE[filename[i:].lower()] 178 except KeyError: return 'text/plain'
179