1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.panels.request.components.editor.inspectors.attachments;
14
15 import java.util.HashMap;
16
17 /***
18 * Handles drop of files on the AttachementPanel
19 *
20 * @author ole.matzura
21 */
22
23 public class ContentTypeHandler
24 {
25 private static final HashMap<String, String> suffixToContentType;
26 public static final String DEFAULT_CONTENTTYPE = "application/octet-stream";
27
28 public static String getContentTypeFromFilename(String fileName)
29 {
30 String suffix = getSuffixFromFilename(fileName);
31
32 if (suffixToContentType.containsKey(suffix))
33 return suffixToContentType.get(suffix);
34
35 return DEFAULT_CONTENTTYPE;
36 }
37
38 public static String getSuffixFromFilename(String fileName)
39 {
40 if (fileName == null || fileName.length() == 0)
41 return "";
42
43 int pos = fileName.lastIndexOf(".") + 1;
44 int len = fileName.length();
45
46 String suffix = "";
47 if (pos < len)
48 suffix = fileName.substring(pos, len);
49
50 return suffix;
51
52 }
53
54 static
55 {
56 suffixToContentType = new HashMap<String, String>();
57 suffixToContentType.put("html", "text/html");
58 suffixToContentType.put("htm", "text/html");
59 suffixToContentType.put("txt", "text/plain");
60 suffixToContentType.put("xml", "text/xml");
61 suffixToContentType.put("wsdl", "text/xml");
62 suffixToContentType.put("xsd", "text/xml");
63 suffixToContentType.put("c", "text/plain");
64 suffixToContentType.put("c++", "text/plain");
65 suffixToContentType.put("pl", "text/plain");
66 suffixToContentType.put("c", "text/plain");
67 suffixToContentType.put("h", "text/plain");
68
69
70
71
72
73 suffixToContentType.put("talk", "text/x-speech");
74 suffixToContentType.put("css", "text/css");
75
76 suffixToContentType.put("gif", "image/gif");
77 suffixToContentType.put("xbm", "image/x-xbitmap");
78 suffixToContentType.put("xpm", "image/x-xpixmap");
79 suffixToContentType.put("png", "image/x-png");
80 suffixToContentType.put("ief", "image/ief");
81 suffixToContentType.put("jpeg", "image/jpeg");
82 suffixToContentType.put("jpg", "image/jpeg");
83 suffixToContentType.put("jpe", "image/jpeg");
84 suffixToContentType.put("tiff tif", "image/tiff");
85 suffixToContentType.put("tif", "image/tiff");
86 suffixToContentType.put("rgb", "image/rgb");
87
88 suffixToContentType.put("g3f ", "image/g3fax");
89 suffixToContentType.put("xwd ", "image/x-xwindowdump");
90 suffixToContentType.put("pict", "image/x-pict");
91 suffixToContentType.put("ppm", "image/x-portable-pixmap");
92 suffixToContentType.put("pgm", "image/x-portable-graymap");
93 suffixToContentType.put("pbm", "image/x-portable-bitmap");
94 suffixToContentType.put("pnm", "image/x-portable-anymap");
95 suffixToContentType.put("bmp", "image/x-ms-bmp");
96 suffixToContentType.put("ras", "image/x-cmu-raster");
97 suffixToContentType.put("pcd", "image/x-photo-cd");
98 suffixToContentType.put("cgm", "image/cgm");
99
100 suffixToContentType.put("mil", "image/x-cals");
101 suffixToContentType.put("cal", "image/x-cals");
102 suffixToContentType.put("fif", "image/fif");
103 suffixToContentType.put("dsf", "image/x-mgx-dsf");
104 suffixToContentType.put("cmx", "image/x-cmx");
105 suffixToContentType.put("wi", "image/wavelet");
106 suffixToContentType.put("dwg", "image/vnd.dwg");
107
108 suffixToContentType.put("dxf", "image/vnd.dxf");
109
110 suffixToContentType.put("svf", "image/vnd.svf");
111
112 suffixToContentType.put("au snd", "audio/basic");
113 suffixToContentType.put("snd", "audio/basic");
114 suffixToContentType.put("aif", "audio/x-aiff");
115 suffixToContentType.put("aiff", "audio/x-aiff");
116 suffixToContentType.put("aifc", "audio/x-aiff");
117 suffixToContentType.put("wav", "audio/x-wav");
118 suffixToContentType.put("mpa", "audio/x-mpeg");
119 suffixToContentType.put("abs", "audio/x-mpeg");
120 suffixToContentType.put("mpega", "audio/x-mpeg");
121 suffixToContentType.put("mp2a", "audio/x-mpeg-2");
122 suffixToContentType.put("mpa2", "audio/x-mpeg-2");
123 suffixToContentType.put("es", "audio/echospeech");
124 suffixToContentType.put("vox", "audio/voxware");
125 suffixToContentType.put("lcc", "application/fastman");
126 suffixToContentType.put("ra", "application/x-pn-realaudio");
127 suffixToContentType.put("ram", "application/x-pn-realaudio");
128
129 suffixToContentType.put("mmid", "x-music/x-midi");
130 suffixToContentType.put("skp", "application/vnd.koan");
131
132 suffixToContentType.put("talk", "text/x-speech");
133 suffixToContentType.put("mpeg", "video/mpeg");
134 suffixToContentType.put("mpg", "video/mpeg");
135 suffixToContentType.put("mpe", "video/mpeg");
136 suffixToContentType.put("mpv2", "video/mpeg-2");
137 suffixToContentType.put("mp2v", "video/mpeg-2");
138 suffixToContentType.put("qt", "video/quicktime");
139 suffixToContentType.put("mov", "video/quicktime");
140 suffixToContentType.put("avi", "video/x-msvideo");
141 suffixToContentType.put("movie", "video/x-sgi-movie");
142 suffixToContentType.put("vdo", "video/vdo");
143 suffixToContentType.put("viv", "video/vnd.vivo");
144
145 suffixToContentType.put("pac", "application/x-ns-proxy-autoconfig");
146
147
148
149
150 suffixToContentType.put("ice", "x-conference/x-cooltalk");
151
152 suffixToContentType.put("ai", "application/postscript");
153 suffixToContentType.put("eps", "application/postscript");
154 suffixToContentType.put("ps", "application/postscript");
155 suffixToContentType.put("rtf", "application/rtf");
156 suffixToContentType.put("pdf", "application/pdf");
157
158 suffixToContentType.put("mif", "application/vnd.mif");
159
160 suffixToContentType.put("t", "application/x-troff");
161 suffixToContentType.put("tr", "application/x-troff");
162 suffixToContentType.put("roff", "application/x-troff");
163 suffixToContentType.put("man", "application/x-troff-man");
164 suffixToContentType.put("me", "application/x-troff-me");
165 suffixToContentType.put("ms", "application/x-troff-ms");
166 suffixToContentType.put("latex", "application/x-latex");
167 suffixToContentType.put("tex", "application/x-tex");
168 suffixToContentType.put("texinfo", "application/x-texinfo");
169 suffixToContentType.put("texi ", "application/x-texinfo");
170 suffixToContentType.put("dvi", "application/x-dvi");
171
172 suffixToContentType.put("doc", "application/msword");
173
174
175 suffixToContentType.put("oda", "application/oda");
176 suffixToContentType.put("evy", "application/envoy");
177
178
179
180
181 suffixToContentType.put("fm", "application/vnd.framemaker");
182 suffixToContentType.put("frm", "application/vnd.framemaker");
183 suffixToContentType.put("frame", "application/vnd.framemaker");
184
185
186 suffixToContentType.put("gtar", "application/x-gtar");
187 suffixToContentType.put("tar", "application/x-tar");
188 suffixToContentType.put("ustar", "application/x-ustar");
189 suffixToContentType.put("bcpio", "application/x-bcpio");
190 suffixToContentType.put("cpio", "application/x-cpio");
191 suffixToContentType.put("shar", "application/x-shar");
192 suffixToContentType.put("zip", "application/zip");
193 suffixToContentType.put("hqx", "application/mac-binhex40");
194 suffixToContentType.put("sit", "application/x-stuffit");
195 suffixToContentType.put("sea", "application/x-stuffit");
196 suffixToContentType.put("fif", "application/fractals");
197 suffixToContentType.put("bin", "application/octet-stream");
198 suffixToContentType.put("uu", "application/octet-stream");
199 suffixToContentType.put("exe", "application/octet-stream");
200 suffixToContentType.put("src", "application/x-wais-source");
201 suffixToContentType.put("wsrc", "application/x-wais-source");
202 suffixToContentType.put("hdf", "application/hdf");
203 suffixToContentType.put("js", "text/javascript");
204 suffixToContentType.put("ls", "text/javascript");
205 suffixToContentType.put("mocha", "text/javascript");
206
207
208 suffixToContentType.put("sh", "application/x-sh");
209 suffixToContentType.put("csh", "application/x-csh");
210 suffixToContentType.put("pl", "application/x-perl");
211 suffixToContentType.put("tcl ", "application/x-tcl");
212
213
214
215
216
217 suffixToContentType.put("spl", "application/futuresplash");
218 suffixToContentType.put("mbd", "application/mbedlet");
219
220
221 suffixToContentType.put("rad", "application/x-rad-powermedia");
222 suffixToContentType.put("ppz", "application/mspowerpoint");
223 suffixToContentType.put("css", "application/x-pointplus");
224 suffixToContentType.put("asp", "application/x-asap");
225 suffixToContentType.put("asn", "application/astound");
226 suffixToContentType.put("axs", "application/x-olescript");
227 suffixToContentType.put("ods", "application/x-oleobject");
228 suffixToContentType.put("opp", "x-form/x-openscape");
229 suffixToContentType.put("wba", "application/x-webbasic");
230 suffixToContentType.put("frm", "application/x-alpha-form");
231 suffixToContentType.put("wfx", "x-script/x-wfxclient");
232
233
234 suffixToContentType.put("pcn", "application/x-pcn");
235
236
237
238 suffixToContentType.put("ppt", "application/vnd.ms-powerpoint");
239
240
241
242
243
244 suffixToContentType.put("svd", "application/vnd.svd");
245
246 suffixToContentType.put("ins", "application/x-net-install");
247 suffixToContentType.put("ccv", "application/ccv");
248 suffixToContentType.put("vts", "workbook/formulaone");
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271 suffixToContentType.put("wrl", "x-world/x-vrml");
272 suffixToContentType.put("vrml", "x-world/x-vrml");
273 suffixToContentType.put("vrw", "x-world/x-vream");
274 suffixToContentType.put("p3d", "application/x-p3d");
275 suffixToContentType.put("svr", "x-world/x-svr");
276 suffixToContentType.put("wvr", "x-world/x-wvr");
277 suffixToContentType.put("3dmf", "x-world/x-3dmf");
278
279 suffixToContentType.put("ma", "application/mathematica");
280 suffixToContentType.put("msh", "x-model/x-mesh");
281 suffixToContentType.put("v5d", "application/vis5d");
282 suffixToContentType.put("igs", "application/iges");
283 suffixToContentType.put("dwf ", "drawing/x-dwf");
284 suffixToContentType.put("showcase", "application/x-showcase");
285 suffixToContentType.put("slides", "application/x-showcase");
286 suffixToContentType.put("sc", "application/x-showcase");
287 suffixToContentType.put("show", "application/x-showcase");
288 suffixToContentType.put("ins", "application/x-insight");
289 suffixToContentType.put("insight", "application/x-insight");
290 suffixToContentType.put("ano", "application/x-annotator");
291 suffixToContentType.put("dir", "application/x-dirview");
292 suffixToContentType.put("lic", "application/x-enterlicense");
293 suffixToContentType.put("faxmgr", "application/x-fax-manager");
294 suffixToContentType.put("faxmgrjob", "application/x-fax-manager-job");
295 suffixToContentType.put("icnbk", "application/x-iconbook");
296 suffixToContentType.put("wb", "application/x-inpview");
297 suffixToContentType.put("inst ", "application/x-install");
298 suffixToContentType.put("mail", "application/x-mailfolder");
299 suffixToContentType.put("pp ppages", "application/x-ppages");
300 suffixToContentType.put("sgi-lpr", "application/x-sgi-lpr");
301 suffixToContentType.put("tardist", "application/x-tardist");
302 suffixToContentType.put("ztardist", "application/x-ztardist");
303 suffixToContentType.put("wkz", "application/x-wingz");
304 suffixToContentType.put("iv", "graphics/x-inventor");
305 }
306
307 }