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字符串
新聞熱點
疑難解答