response.setContentType()的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据。例如web浏览器就是通过MIME类型来判断文件是GIF图片。通过MIME类型来处理json字符串。Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型 ,你可也去看一下。用表单上传文件,想在服务端验证上传文件的类型,只允许上传GIF,JPG,Zip, 我们有两种方法:第一:检查文件的扩展名;第二:检查文件的MIME类型 。
检查文件的扩展名的方法,很简单快捷,但是 a.jsp改名为 a.jpg能可以绕过检查上传了。
检查文件的MIME类型的方法,在IE7与Firefox下有一点区别(见下表),有不同浏览器上传表现不一致。Firefox下ZIP与EXE文件的MIME类型同为application/octet-stream。
表中例出的是在服务器端(tomcat5.5)接收不同浏览器上传的文件时,取得的MIME类型
| 用IE7上传 | 用Firefox3.0上传 |
GIF | image/gif | image/gif |
JPG | image/pjpeg | image/jpeg |
ZIP | application/x-comPRessed | application/octet-stream |
JSP | text/html | text/html |
EXE | application/octet-stream | application/octet-stream |
常见MIME类型例表:
序号 | 内容类型 | 文件扩展名 | 描述 |
1 | application/msWord | doc | Microsoft Word |
2 | application/octet-stream bin | dms lha lzh exe class | 可执行程序 |
3 | application/pdf | Adobe Acrobat | |
4 | application/postscript | ai eps ps | PostScript |
5 | appication/Powerpoint | Microsoft Powerpoint | |
6 | appication/rtf | rtf | rtf格式 |
7 | appication/x-compress | z | unix压缩文件 |
8 | application/x-gzip | gz | gzip |
9 | application/x-gtar | gtar | tar文档 (gnu 格式 ) |
10 | application/x-shockwave-Flash | swf | MacroMedia Flash |
11 | application/x-tar | tar | tar(4.3BSD) |
12 | application/zip | zip | winzip |
13 | audio/basic | au snd | sun/next声音文件 |
14 | audio/mpeg | mpeg mp2 | Mpeg声音文件 |
15 | audio/x-aiff | mid midi rmf | Midi格式 |
16 | audio/x-pn-realaudio | ram ra | Real Audio声音 |
17 | audio/x-pn-realaudio-plugin | rpm | Real Audio插件 |
18 | audio/x-wav | wav | Microsoft Windows声音 |
19 | image/cgm | cgm | 计算机图形元文件 |
20 | image/gif | gif | COMPUSERVE GIF图像 |
21 | image/jpeg | jpeg jpg jpe | JPEG图像 |
22 | image/png | png | PNG图像 |
|
|
|
|
text/html HTMLtext/plain TXT text/xml XML
text/json json字符串
新闻热点
疑难解答