首页 > 代码库 > MIME类型-服务端验证上传文件的类型

MIME类型-服务端验证上传文件的类型

   MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

      web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类。

      Tomcat的安装目录/conf/web.xml 中就定义了大量MIME类型 ,你可也去看一下。

 

      最近在做用表单上传文件,想在服务端验证上传文件的类型,只允许上传GIF,JPG,ZIP, 我们有两种方法,

      第一:检查文件的扩展名, 第二:检查文件的MIME类型 。

     检查文件的扩展名的方法,很简单快捷, 但是  a.jsp 改名为 a.jpg能可以绕过检查上传了。

     检查文件的MIME类型的方法,在IE7与Firefox下有一点区别(见下表), 有不同浏览器上传表现不一致。Firefox下ZIP与EXE文件的MIME类型同为application/octet-stream。

 

     所以我决定 两种方法结合使用,先检查扩展名, 再检查MIME,不合格的文件不让上传。

 

表中例出的是在服务器端(tomcat5.5)接收不同浏览器上传的文件时,取得的MIME类型

 

 用IE7上传用Firefox3.0上传
GIF

image/gif

image/gif

JPG

image/pjpeg

image/jpeg

ZIPapplication/x-compressedapplication/octet-stream
JSP

text/html

text/html

EXEapplication/octet-streamapplication/octet-stream

 

 

 用IE7上传用Firefox3.0上传
GIFimage/gif image/gif 
JPGimage/pjpeg image/jpeg 
ZIPapplication/x-compressedapplication/octet-stream 
JSPtext/html text/html 
EXEapplication/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

pdf

Adobe Acrobat

4

application/postscript

ai eps ps

PostScript

5

appication/powerpoint

ppt

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 图像

 

用IE7上传用Firefox3.0上传
GIF

image/gif

image/gif

JPG

image/pjpeg

image/jpeg

ZIPapplication/x-compressedapplication/octet-stream
JSP

text/html

text/html

EXEapplication/octet-streamapplication/octet-stream

 

序号内容类型文件扩展名描述
1application/msword doc Microsoft Word 
2application/octet-stream bin dms lha lzh exe class 可执行程序
3application/pdf pdf Adobe Acrobat 
4application/postscript ai eps ps PostScript 
5appication/powerpoint ppt Microsoft Powerpoint 
6appication/rtf rtf rtf 格式
7appication/x-compress unix 压缩文件
8application/x-gzip gz gzip 
9application/x-gtar gtar tar 文档 (gnu 格式 ) 
10application/x-shockwave-flash swf MacroMedia Flash 
11application/x-tar tar tar(4.3BSD) 
12application/zip zip winzip 
13audio/basic au snd sun/next 声音文件
14audio/mpeg mpeg mp2 Mpeg 声音文件
15audio/x-aiff mid midi rmf Midi 格式
16audio/x-pn-realaudio ram ra Real Audio 声音
17audio/x-pn-realaudio-plugin rpm Real Audio 插件
18audio/x-wav wav Microsoft Windows 声音
19image/cgm cgm 计算机图形元文件
20image/gif gif COMPUSERVE GIF 图像
21image/jpeg jpeg jpg jpe JPEG 图像
22image/png png PNG 图像