MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049
什么是MIME类型?-在把输出结果传送到浏览器上的时候,浏览器必须启动适当的应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中。
例如,架设你要传送一个Microsoft Excel文件到客户端。那么这时的MIME类型就是“application/vnd.ms-excel”。在大多数实际情况中,这个文件然后将传送给 Execl来处理(假设我们设定Execl为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的 ContentType属性。
多媒体文件格式MIME
最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型。
MIME意为多目Internet邮件扩展,它设计的最初目的是为了在发送电子邮件时附加多媒体数据,让邮件客户程序能根据其类型进行处理。然而当它被HTTP协议支持之后,它的意义就更为显著了。它使得HTTP传输的不仅是普通的文本,而变得丰富多彩。
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。
Internet中有一个专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的 MIME类型为标准类型。因此他们使用在类别中以x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。
由于MIME类型与文档的后缀相关,因此服务器使用文档的后缀来区分不同文件的MIME类型,服务器中必须定义文档后缀和MIME类型之间的对应关系。而客户程序从服务器上接收数据的时候,它只是从服务器接受数据流,并不了解文档的名字,因此服务器必须使用附加信息来告诉客户程序数据的MIME类型。服务器在发送真正的数据之前,就要先发送标志数据的MIME类型的信息,这个信息使用Content-type关键字进行定义,例如对于HTML文档,服务器将首先发送以下两行MIME标识信息,这个标识并不是真正的数据文件的一部分。
Content-type: text/html
注意,第二行为一个空行,这是必须的,使用这个空行的目的是将MIME信息与真正的数据内容分隔开。
PHP代码
-
- $filetype=array();
- $filetype['hqx']="application/mac-binhex40";
- $filetype['bin']="application/octet-stream";
- $filetype['oda']="application/oda";
- $filetype['pdf']="application/pdf";
- $filetype['ai']="application/postsrcipt";
- $filetype['eps']="application/postsrcipt";
- $filetype['es']="application/postsrcipt";
- $filetype['rtf']="application/rtf";
- $filetype['mif']="application/x-mif";
- $filetype['csh']="application/x-csh";
- $filetype['dvi']="application/x-dvi";
- $filetype['hdf']="application/x-hdf";
- $filetype['nc']="application/x-netcdf";
- $filetype['cdf']="application/x-netcdf";
- $filetype['latex']="application/x-latex";
- $filetype['ts']="application/x-troll-ts";
- $filetype['src']="application/x-wais-source";
- $filetype['zip']="application/zip";
- $filetype['bcpio']="application/x-bcpio";
- $filetype['cpio']="application/x-cpio";
- $filetype['gtar']="application/x-gtar";
- $filetype['shar']="application/x-shar";
- $filetype['sv4cpio']="application/x-sv4cpio";
- $filetype['sv4crc']="application/x-sv4crc";
- $filetype['tar']="application/x-tar";
- $filetype['ustar']="application/x-ustar";
- $filetype['man']="application/x-troff-man";
- $filetype['sh']="application/x-sh";
- $filetype['tcl']="application/x-tcl";
- $filetype['tex']="application/x-tex";
- $filetype['texi']="application/x-texinfo";
- $filetype['texinfo']="application/x-texinfo";
- $filetype['t']="application/x-troff";
- $filetype['tr']="application/x-troff";
- $filetype['roff']="application/x-troff";
- $filetype['shar']="application/x-shar";
- $filetype['me']="application/x-troll-me";
- $filetype['ts']="application/x-troll-ts";
- $filetype['gif']="image/gif";
- $filetype['jpeg']="image/pjpeg";
- $filetype['jpg']=array("image/pjpeg","image/jpeg");
- $filetype['jpe']="image/pjpeg";
- $filetype['ras']="image/x-cmu-raster";
- $filetype['pbm']="image/x-portable-bitmap";
- $filetype['ppm']="image/x-portable-pixmap";
- $filetype['xbm']="image/x-xbitmap";
- $filetype['xwd']="image/x-xwindowdump";
- $filetype['ief']="image/ief";
- $filetype['tif']="image/tiff";
- $filetype['tiff']="image/tiff";
- $filetype['pnm']="image/x-portable-anymap";
- $filetype['pgm']="image/x-portable-graymap";
- $filetype['rgb']="image/x-rgb";
- $filetype['xpm']="image/x-xpixmap";
- $filetype['txt']="text/plain";
- $filetype['c']="text/plain";
- $filetype['cc']="text/plain";
- $filetype['h']="text/plain";
- $filetype['html']="text/html";
- $filetype['htm']="text/html";
- $filetype['htl']="text/html";
- $filetype['rtx']="text/richtext";
- $filetype['etx']="text/x-setext";
- $filetype['tsv']="text/tab-separated-values";
- $filetype['mpeg']="video/mpeg";
- $filetype['avi']="video/avi";
- $filetype['rm']="video/rm";
- $filetype['rmvb']="video/rmvb";
- $filetype['wmv']="video/x-ms-wmv";
- $filetype['flv']="application/octet-stream";
- $filetype['mpg']="video/mpeg";
- $filetype['mpe']="video/mpeg";
- $filetype['avi']="video/x-msvideo";
- $filetype['qt']="video/quicktime";
- $filetype['mov']="video/quicktime";
- $filetype['moov']="video/quicktime";
- $filetype['movie']="video/x-sgi-movie";
- $filetype['au']="audio/basic";
- $filetype['mp3']="audio/mp3";
- $filetype['snd']="audio/basic";
- $filetype['wav']="audio/wav";
- $filetype['wma']="audio/x-ms-wma";
- $filetype['aif']="audio/x-aiff";
- $filetype['aiff']="audio/x-aiff";
- $filetype['aifc']="audio/x-aiff";
- $filetype['swf']="application/x-shockwave-flash";
- $filetype['doc']="application/msword";
- $filetype['ini']='application/octet-stream';
- ?>
文件后缀
MIME
备注
*.avi
video/x-msvideo
视频文件
*.aif *.aiff *.aifc
audio/x-aiff
声音文件
*.au
*.snd
audio/basic
声音文件
*.ai
*.eps
*.ps
application/postscript
*.asd *.asn
application/astound
*.bin *.exe *.com *.dll *.class
application/octet-stream
二进制数据文件
*.bin
application/x-macbinary
*.csv
text/comma-separated-values
*.css
text/css
Css(样式表文件)
*.dwg
application/acad
AutoCAD文件
*.dxf
application/dxf
AutoCAD文件
*.dcr *.dir *.dxr
application/x-director
*.doc *.dot
application/msword
Word类型文件
*.gz
application/gzip
GNU 压缩格式文件
*.gif
image/gif
*.hlp *.chm
application/mshelp
*.htm *.html *.shtml
text/html
*.js
text/javascript
*.jpeg *.jpg *.jpe
image/jpeg
*.mpeg *.mpg *.mpe
video/mpeg
*.mp3
audio/mpeg
*.qt *.mov
video/quicktime
*.mdb
application/msaccess
*.ppt *.ppz *.pps *.pot
application/mspowerpoint
*.pdf
application/pdf
*.rar
application/octet-stream
*.rtf
application/rtf
*.rtx
text/richtext
*.ram *.ra
audio/x-pn-realaudio
*.rm
*.rmvb
application/vnd.rn-realmedia
*.swf *.cab
application/x-shockwave-flash
*.txt
text/plain
*.xls *.xla
application/msexcel
*.z
application/x-compress
*.zip
application/x-zip-compressed
阅读(386) | 评论(0) | 转发(0) |