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

转载 2011年01月10日 17:18:00

      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

ZIP application/x-compressed application/octet-stream
JSP

text/html

text/html

EXE application/octet-stream application/octet-stream

 

  用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

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

ZIP application/x-compressed application/octet-stream
JSP

text/html

text/html

EXE application/octet-stream application/octet-stream

序号 内容类型 文件扩展名 描述
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 图像

文件上传格式:application/octet-stream

apk application/vnd.android.package-archive 这是tomcat配置文件apache-tomcat-7.0.59\conf\web....
  • u012377333
  • u012377333
  • 2016年01月22日 16:32
  • 12652

HTML <input> accept 属性-规定能够通过文件上传进行提交的文件类型

定义和用法 accept 属性规定了可通过文件上传提交的服务器接受的文件类型。 注意:accept 属性仅适用于 。 提示:请不要将该属性作为您的验证工具。应该在服务器上对文件上传进行验证。 ...
  • libinemail
  • libinemail
  • 2016年03月31日 08:02
  • 14601

java获取文件MIME类型

我们知道,在HTTP请求头中经常会有Content-Type这一行请求头,这点在java利用post去做请求时至关重要,我们不能忽略它。最近这几天的工作中,由于自己一直在接触post上传文件发送请求,...
  • ZhiyouWu
  • ZhiyouWu
  • 2016年11月23日 12:30
  • 2546

HTTP请求和MIME介绍

                                                                     HTTP请求和MIME介绍HTTP请求由三部分组成,分别是:请...
  • IT5555
  • IT5555
  • 2007年09月21日 13:02
  • 12486

上传漏洞科普[3]-MIME验证

昨天本站发表了文件上传漏洞之JS验证的演示代码,今天我们讨论MIME验证。 关于MIME MIME的作用:使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图...
  • u011721501
  • u011721501
  • 2014年03月19日 00:10
  • 1179

常用的文件对应的MIME类型

MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。下面列...
  • zb219
  • zb219
  • 2006年07月18日 21:16
  • 1454

重新认识MIME类型

重新认识MIME类型我们都知道一件事情,编写网页要使用Html、css,我们也学过常用的html标签,也明白在文档中添加标签会在浏览器中显示一张图片。但是作为一个web开发者,你还需要知道浏览器到底是...
  • mynewdays
  • mynewdays
  • 2015年11月19日 09:41
  • 1110

HTTP 传输类型&MIME类型 整理

getContentType request数据 Mime multipart/form-data text/html text/plain image/png image/gif image/jpe...
  • Wanger_tt
  • Wanger_tt
  • 2016年06月03日 14:08
  • 1180

iis7如何添加mime类型支持所有后缀名文件下载的方法(解决特殊后缀文件无法下载的问题)

转自 http://www.pc6.com/infoview/Article_65981.html     在iis7中默认的mime类型并不包含所有的后缀名文件,像现在比较热门的apk,ipa...
  • u010820135
  • u010820135
  • 2016年08月02日 18:33
  • 2749

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

      MIME的作用 : 使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。      web服务器使用MIME...
  • Cike121272604
  • Cike121272604
  • 2011年01月10日 17:18
  • 7744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MIME类型-服务端验证上传文件的类型
举报原因:
原因补充:

(最多只允许输入30个字)