IE和firefox上传文件mime类型的设置

php上传文件mime类型问题。。。。。。。

php上传文件支持的mime类型在不同的浏览器下是有差异的。先附上两个浏览器下支持的文件类型如下:

史上最完全oophper亲测版php文件上传之文件类型对应表,ie,火狐各一份。
 
            IE下
id后缀名php识别出的文件类型
0gifimage/gif
1jpgimage/jpeg
2pngimage/png
3bmpimage/bmp
4psdapplication/octet-stream
5icoimage/x-icon
6rarapplication/octet-stream
7zipapplication/zip
87zapplication/octet-stream
9exeapplication/octet-stream
10avivideo/avi
11rmvbapplication/vnd.rn-realmedia-vbr
123gpapplication/octet-stream
13flvapplication/octet-stream
14mp3audio/mpeg
15wavaudio/wav
16krcapplication/octet-stream
17lrcapplication/octet-stream
18txttext/plain
19docapplication/msword
20xlsapplication/vnd.ms-excel
21pptapplication/vnd.ms-powerpoint
22pdfapplication/pdf
23chmapplication/octet-stream
24mdbapplication/msaccess
25sqlapplication/octet-stream
26conapplication/octet-stream
27logtext/plain
28datapplication/octet-stream
29iniapplication/octet-stream
30phpapplication/octet-stream
31htmltext/html
32htmtext/html
33ttfapplication/octet-stream
34fonapplication/octet-stream
35jsapplication/x-javascript
36xmltext/xml
37dllapplication/octet-stream
38dllapplication/octet-stream



Firefox下   
id后缀名php识别出的文件类型
0gifimage/gif
1jpgimage/pjpeg
2pngimage/x-png
3bmpimage/bmp
4psdapplication/octet-stream
5icoimage/x-icon
6rarapplication/octet-stream
7zipapplication/x-zip-compressed
87zapplication/octet-stream
9exeapplication/octet-stream
10avivideo/avi
11rmvbapplication/vnd.rn-realmedia-vbr
123gpapplication/octet-stream
13flvapplication/octet-stream
14mp3audio/mpeg
15wavaudio/wav
16krcapplication/octet-stream
17lrcapplication/octet-stream
18txttext/plain
19docapplication/msword
20xlsapplication/vnd.ms-excel
21pptapplication/vnd.ms-powerpoint
22pdfapplication/pdf
23chmapplication/octet-stream
24mdbapplication/msaccess
25sqltext/plain
26conapplication/octet-stream
27logtext/plain
28dattext/plain
29iniapplication/octet-stream
30phpapplication/octet-stream
31htmltext/html
32htmtext/html
33ttfapplication/octet-stream
34fonapplication/octet-stream
35jstext/html
36xmltext/xml
37dllapplication/octet-stream
38classapplication/java

还有一份是有人直接写好的一个php支持的mime类型数组,一并附上,希望有助于大家:
$mimes = array(    'hqx'    =>    'application/mac-binhex40',
                'cpt'    =>    'application/mac-compactpro',
                'csv'    =>    array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'),
                'bin'    =>    'application/macbinary',
                'dms'    =>    'application/octet-stream',
                'lha'    =>    'application/octet-stream',
                'lzh'    =>    'application/octet-stream',
                'exe'    =>    array('application/octet-stream', 'application/x-msdownload'),
                'class'    =>    'application/octet-stream',
                'psd'    =>    'application/x-photoshop',
                'so'    =>    'application/octet-stream',
                'sea'    =>    'application/octet-stream',
                'dll'    =>    'application/octet-stream',
                'oda'    =>    'application/oda',
                'pdf'    =>    array('application/pdf', 'application/x-download'),
                'ai'    =>    'application/postscript',
                'eps'    =>    'application/postscript',
                'ps'    =>    'application/postscript',
                'smi'    =>    'application/smil',
                'smil'    =>    'application/smil',
                'mif'    =>    'application/vnd.mif',
                'xls'    =>    array('application/excel', 'application/vnd.ms-excel', 'application/msexcel'),
                'ppt'    =>    array('application/powerpoint', 'application/vnd.ms-powerpoint'),
                'wbxml'    =>    'application/wbxml',
                'wmlc'    =>    'application/wmlc',
                'dcr'    =>    'application/x-director',
                'dir'    =>    'application/x-director',
                'dxr'    =>    'application/x-director',
                'dvi'    =>    'application/x-dvi',
                'gtar'    =>    'application/x-gtar',
                'gz'    =>    'application/x-gzip',
                'php'    =>    'application/x-httpd-php',
                'php4'    =>    'application/x-httpd-php',
                'php3'    =>    'application/x-httpd-php',
                'phtml'    =>    'application/x-httpd-php',
                'phps'    =>    'application/x-httpd-php-source',
                'js'    =>    'application/x-javascript',
                'swf'    =>    'application/x-shockwave-flash',
                'sit'    =>    'application/x-stuffit',
                'tar'    =>    'application/x-tar',
                'tgz'    =>    array('application/x-tar', 'application/x-gzip-compressed'),
                'xhtml'    =>    'application/xhtml+xml',
                'xht'    =>    'application/xhtml+xml',
                'zip'    =>  array('application/x-zip', 'application/zip', 'application/x-zip-compressed'),
                'mid'    =>    'audio/midi',
                'midi'    =>    'audio/midi',
                'mpga'    =>    'audio/mpeg',
                'mp2'    =>    'audio/mpeg',
                'mp3'    =>    array('audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'),
                'aif'    =>    'audio/x-aiff',
                'aiff'    =>    'audio/x-aiff',
                'aifc'    =>    'audio/x-aiff',
                'ram'    =>    'audio/x-pn-realaudio',
                'rm'    =>    'audio/x-pn-realaudio',
                'rpm'    =>    'audio/x-pn-realaudio-plugin',
                'ra'    =>    'audio/x-realaudio',
                'rv'    =>    'video/vnd.rn-realvideo',
                'wav'    =>    'audio/x-wav',
                'bmp'    =>    'image/bmp',
                'gif'    =>    'image/gif',
                'jpeg'    =>    array('image/jpeg', 'image/pjpeg'),
                'jpg'    =>    array('image/jpeg', 'image/pjpeg'),
                'jpe'    =>    array('image/jpeg', 'image/pjpeg'),
                'png'    =>    array('image/png',  'image/x-png'),
                'tiff'    =>    'image/tiff',
                'tif'    =>    'image/tiff',
                'css'    =>    'text/css',
                'html'    =>    'text/html',
                'htm'    =>    'text/html',
                'shtml'    =>    'text/html',
                'txt'    =>    'text/plain',
                'text'    =>    'text/plain',
                'log'    =>    array('text/plain', 'text/x-log'),
                'rtx'    =>    'text/richtext',
                'rtf'    =>    'text/rtf',
                'xml'    =>    'text/xml',
                'xsl'    =>    'text/xml',
                'mpeg'    =>    'video/mpeg',
                'mpg'    =>    'video/mpeg',
                'mpe'    =>    'video/mpeg',
                'qt'    =>    'video/quicktime',
                'mov'    =>    'video/quicktime',
                'avi'    =>    'video/x-msvideo',
                'movie'    =>    'video/x-sgi-movie',
                'doc'    =>    'application/msword',
                'docx'    =>    'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
                'xlsx'    =>    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
                'word'    =>    array('application/msword', 'application/octet-stream'),
                'xl'    =>    'application/excel',
                'eml'    =>    'message/rfc822',
                'json' => array('application/json', 'text/json')
            );


贴完了相关资料后我说下我的问题吧。直接在网上上传exe文件是件很危险的事情。我目前用的浏览器是火狐的,我在上传文件mime类型列表中写入了允许上传的文件类型。我禁止上传exe文件。语句是这样的
     while($type== 'application/octet-stream'){
                             echo "<script>alert(\"为了网络安全性,请不要上传可执行文件\(exe\)\!\");</script>";
                               exit();
           }
我用红色字体标注出来的文件类型为php下火狐支持的exe文件mime类型。但我禁止了exe文件的上传。连 7z .psd.ini ,ttf,php.fon 等文件也禁止了,因为他们的mime类型是一样的,有高手能帮个忙说下应该怎么绕过这个瓶颈呢,忘路过的大神指点。。。。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值