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

来源:互联网 发布:意大利美女知乎 编辑:程序博客网 时间:2024/06/05 18:29

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

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

史上最完全oophper亲测版php文件上传之文件类型对应表,ie,火狐各一份。
 
            IE下
id后缀名php识别出的文件类型0gifimage/gif1jpgimage/jpeg2pngimage/png3bmpimage/bmp4psdapplication/octet-stream5icoimage/x-icon6rarapplication/octet-stream7zipapplication/zip87zapplication/octet-stream9exeapplication/octet-stream10avivideo/avi11rmvbapplication/vnd.rn-realmedia-vbr123gpapplication/octet-stream13flvapplication/octet-stream14mp3audio/mpeg15wavaudio/wav16krcapplication/octet-stream17lrcapplication/octet-stream18txttext/plain19docapplication/msword20xlsapplication/vnd.ms-excel21pptapplication/vnd.ms-powerpoint22pdfapplication/pdf23chmapplication/octet-stream24mdbapplication/msaccess25sqlapplication/octet-stream26conapplication/octet-stream27logtext/plain28datapplication/octet-stream29iniapplication/octet-stream30phpapplication/octet-stream31htmltext/html32htmtext/html33ttfapplication/octet-stream34fonapplication/octet-stream35jsapplication/x-javascript36xmltext/xml37dllapplication/octet-stream38dllapplication/octet-stream


Firefox下   
id后缀名php识别出的文件类型0gifimage/gif1jpgimage/pjpeg2pngimage/x-png3bmpimage/bmp4psdapplication/octet-stream5icoimage/x-icon6rarapplication/octet-stream7zipapplication/x-zip-compressed87zapplication/octet-stream9exeapplication/octet-stream10avivideo/avi11rmvbapplication/vnd.rn-realmedia-vbr123gpapplication/octet-stream13flvapplication/octet-stream14mp3audio/mpeg15wavaudio/wav16krcapplication/octet-stream17lrcapplication/octet-stream18txttext/plain19docapplication/msword20xlsapplication/vnd.ms-excel21pptapplication/vnd.ms-powerpoint22pdfapplication/pdf23chmapplication/octet-stream24mdbapplication/msaccess25sqltext/plain26conapplication/octet-stream27logtext/plain28dattext/plain29iniapplication/octet-stream30phpapplication/octet-stream31htmltext/html32htmtext/html33ttfapplication/octet-stream34fonapplication/octet-stream35jstext/html36xmltext/xml37dllapplication/octet-stream38classapplication/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类型是一样的,有高手能帮个忙说下应该怎么绕过这个瓶颈呢,忘路过的大神指点。。。。
原创粉丝点击