php 文件上传后缀名与文件类型对照表_php技巧_脚本之家

在php上传文件或图片时我们会碰到要限制上传文件的类型,如果我们单只限制后缀名是很容易给绕过去的,下面我找了一些后辍名对应mine对照表,希望对大家有帮助。

利用js

网上有很多php文件上传的类,文件上传处理是php的一个特色(至少手册上是将此作为php特点来展示的,个人认为php在数组方面的优异功能更有特色),学php的人都知道文件上传怎么做,但很多人在编程中却可能忽视了一些细节问题,那就是文件的类型。在表单将文件提交给php做处理之前,浏览器会先解析识别一边是什么类型的文件,之后进入php处理环节,php又会去识别解析此文件的原始类型。在这个过程中会有一些浏览器兼容,更准确来说是文件类型解析标识不一致的问题。这样在php处理Post过来的文件类型时就需要根据不同浏览器做更多的判断,最典型的就是IE和火狐下的区别。
php上传图片文件(gif,jpg,bmp,png,psd,ico)
史上最完全oophper亲测版php文件上传之文件类型对应表,ie,火狐各一份。
ie火狐

使用PHP脚本上传文件时需要将文件格式处理为PHP所认识的文件类型,例如。这个格式的判断首先是由浏览器完成的,浏览器通过表单的提交判断是某类文件,再提交给php进行处理。

例1

id

有时候不同浏览器对文件类型的定义不相同,因此有时候需要对不同的浏览器做判断。其实可以将不同浏览器的类型都加入到判断中。

 代码如下

后缀名

下面提供一张IE和火狐浏览器的文件类型对照表:

<script>
function check(){
var filepath=path.value
filepath=filepath.substring(filepath.lastIndexOf(‘.’)+1,filepath.length)
澳门新葡萄京娱乐场,if(filepath != ‘jpg’ && filepath != ‘gif’)
alert(“只能上传JPG或GIF格式的图片”)
}
</script>

php识别出的文件类型

ie 火狐

<input type=file name=path onpropertychange=”check()”>
(只能上传JPG或GIF格式的图片)

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

id

例2

id

后缀名

 代码如下

后缀名

php识别出的文件类型

<script>
function ck(obj){if(obj.value.length>0){
var af=”jpg,gif,png,zip,rar,txt,htm”;
if(eval(“with(obj.value)if(!/”+af.split(“,”).join(“|”)+”/ig.test(substring(lastIndexOf(‘.’)

php识别出的文件类型

0 gif image/gif 1 jpg image/jpeg 2 png image/png 3 bmp image/bmp 4 psd
application/octet-stream 5 ico image/x-icon 6 rar
application/octet-stream 7 zip application/zip 8 7z
application/octet-stream 9 exe application/octet-stream 10 avi video/avi
11 rmvb application/vnd.rn-realmedia-vbr 12 3gp application/octet-stream
13 flv application/octet-stream 14 mp3 audio/mpeg 15 wav audio/wav 16
krc application/octet-stream 17 lrc application/octet-stream 18 txt
text/plain 19 doc application/msword 20 xls application/vnd.ms-excel 21
ppt application/vnd.ms-powerpoint 22 pdf application/pdf 23 chm
application/octet-stream 24 mdb application/msaccess 25 sql
application/octet-stream 26 con application/octet-stream 27 log
text/plain 28 dat application/octet-stream 29 ini
application/octet-stream 30 php application/octet-stream 31 html
text/html 32 htm text/html 33 ttf application/octet-stream 34 fon
application/octet-stream 35 js application/x-javascript 36 xml text/xml
37 dll application/octet-stream 38 dll application/octet-stream

+1,length)))1;”)){alert(“Allowed file
types:n”+af);obj.createTextRange().execCommand(‘delete’)};
}}
</script>
<form>
<input type=file name=path
onpropertychange=”ck(this)”/></form>

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*
application/octet-stream //应用程序 323 text/h323 acx
application/internet-property-stream ai application/postscript aif
audio/x-aiff aifc audio/x-aiff aiff audio/x-aiff asf video/x-ms-asf asr
video/x-ms-asf asx video/x-ms-asf au audio/basic avi video/x-msvideo axs
application/olescript bas text/plain bcpio application/x-bcpio bin
application/octet-stream bmp image/bmp c text/plain cat
application/vnd.ms-pkiseccat cdf application/x-cdf cer
application/x-x509-ca-cert class application/octet-stream clp
application/x-msclip cmx image/x-cmx cod image/cis-cod cpio
application/x-cpio crd application/x-mscardfile crl application/pkix-crl
crt application/x-x509-ca-cert csh application/x-csh css text/css dcr
application/x-director der application/x-x509-ca-cert dir
application/x-director dll application/x-msdownload dms
application/octet-stream doc application/msword dot application/msword
dvi application/x-dvi dxr application/x-director eps
application/postscript etx text/x-setext evy application/envoy exe
application/octet-stream fif application/fractals flr x-world/x-vrml gif
image/gif gtar application/x-gtar gz application/x-gzip h text/plain hdf
application/x-hdf hlp application/winhlp hqx application/mac-binhex40
hta application/hta htc text/x-component htm text/html html text/html
htt text/webviewhtml ico image/x-icon ief image/ief iii
application/x-iphone ins application/x-internet-signup isp
application/x-internet-signup jfif image/pipeg jpe image/jpeg jpeg
image/jpeg jpg image/jpeg jpg image/pjpeg js application/x-javascript
latex application/x-latex lha application/octet-stream lsf
video/x-la-asf lsx video/x-la-asf lzh application/octet-stream m13
application/x-msmediaview m14 application/x-msmediaview m3u
audio/x-mpegurl man application/x-troff-man mdb application/x-msaccess
me application/x-troff-me mht message/rfc822 mhtml message/rfc822 mid
audio/mid mny application/x-msmoney mov video/quicktime movie
video/x-sgi-movie mp2 video/mpeg mp3 audio/mpeg mpa video/mpeg mpe
video/mpeg mpeg video/mpeg mpg video/mpeg mpp application/vnd.ms-project
mpv2 video/mpeg ms application/x-troff-ms mvb application/x-msmediaview
nws message/rfc822 oda application/oda p10 application/pkcs10 p12
application/x-pkcs12 p7b application/x-pkcs7-certificates p7c
application/x-pkcs7-mime p7m application/x-pkcs7-mime p7r
application/x-pkcs7-certreqresp p7s application/x-pkcs7-signature pbm
image/x-portable-bitmap pdf application/pdf pfx application/x-pkcs12 pgm
image/x-portable-graymap pko application/ynd.ms-pkipko pma
application/x-perfmon pmc application/x-perfmon pml
application/x-perfmon pmr application/x-perfmon pmw
application/x-perfmon png image/x-png pnm image/x-portable-anymap pot,
application/vnd.ms-powerpoint ppm image/x-portable-pixmap pps
application/vnd.ms-powerpoint ppt application/vnd.ms-powerpoint prf
application/pics-rules ps application/postscript pub
application/x-mspublisher qt video/quicktime ra audio/x-pn-realaudio ram
audio/x-pn-realaudio ras image/x-cmu-raster rgb image/x-rgb rmi
audio/mid roff application/x-troff rtf application/rtf rtx text/richtext
scd application/x-msschedule sct text/scriptlet setpay
application/set-payment-initiation setreg
application/set-registration-initiation sh application/x-sh shar
application/x-shar sit application/x-stuffit snd audio/basic spc
application/x-pkcs7-certificates spl application/futuresplash src
application/x-wais-source sst application/vnd.ms-pkicertstore stl
application/vnd.ms-pkistl stm text/html sv4cpio application/x-sv4cpio
sv4crc application/x-sv4crc t application/x-troff tar application/x-tar
tcl application/x-tcl tex application/x-tex texi application/x-texinfo
texinfo application/x-texinfo tgz application/x-compressed tif
image/tiff tiff image/tiff tr application/x-troff trm
application/x-msterminal tsv text/tab-separated-values txt text/plain
uls text/iuls ustar application/x-ustar vcf text/x-vcard vrml
x-world/x-vrml wav audio/x-wav wcm application/vnd.ms-works wdb
application/vnd.ms-works wks application/vnd.ms-works wmf
application/x-msmetafile wps application/vnd.ms-works wri
application/x-mswrite wrl x-world/x-vrml wrz x-world/x-vrml xaf
x-world/x-vrml xbm image/x-xbitmap xla application/vnd.ms-excel xlc
application/vnd.ms-excel xlm application/vnd.ms-excel xls
application/vnd.ms-excel xlt application/vnd.ms-excel xlw
application/vnd.ms-excel xof x-world/x-vrml xpm image/x-xpixmap xwd
image/x-xwindowdump z application/x-compress zip application/zip
-firefox application/x-zip-compressed -IE php上传压缩文件
php上传可执行文件
php上传视频文件,音乐文件,歌词文件(avi,rmvb,3gp,flv,mp3,wav,krc,lrc)
php上传文本文件和文档文件(word->doc,excel->xls,幻灯片->ppt,pdf,chm)
php上传数据库文件(access文件,sql文件,con文件,日志文件log, dat文件)
php上传网页文件,脚本文件,字体文件(ini,php,html,htm,字体文件:ttf,fon, js
,xml) php上传其他文件

id

例3

后缀名

 代码如下

php识别出的文件类型

/*
 * 判断图片类型
 *
 * @param ths
 *    type=”file”的javascript对象
 * @return true-符合要求,false-不符合
 */
function checkImgType(ths){
 if (ths.value == “”) {
  alert(“请上传图片”);
  return false;
 } else {
  if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) {
   alert(“图片类型必须是.gif,jpeg,jpg,png中的一种”);
   ths.value = “”;
   return false;
  }
 }
 return true;
}

0 gif image/gif 1 jpg image/pjpeg 2 png image/x-png 3 bmp image/bmp 4
psd application/octet-stream 5 ico image/x-icon 6 rar
application/octet-stream 7 zip application/x-zip-compressed 8 7z
application/octet-stream 9 exe application/octet-stream 10 avi video/avi
11 rmvb application/vnd.rn-realmedia-vbr 12 3gp application/octet-stream
13 flv application/octet-stream 14 mp3 audio/mpeg 15 wav audio/wav 16
krc application/octet-stream 17 lrc application/octet-stream 18 txt
text/plain 19 doc application/msword 20 xls application/vnd.ms-excel 21
ppt application/vnd.ms-powerpoint 22 pdf application/pdf 23 chm
application/octet-stream 24 mdb application/msaccess 25 sql text/plain
26 con application/octet-stream 27 log text/plain 28 dat text/plain 29
ini application/octet-stream 30 php application/octet-stream 31 html
text/html 32 htm text/html 33 ttf application/octet-stream 34 fon
application/octet-stream 35 js text/html 36 xml text/xml 37 dll
application/octet-stream 38 class application/java

如果是利用php,asp类的我们就不能像上面处理了需要如下

下面看一个实例

 代码如下

代码如下复制代码

$name=$_FILES[‘file4’][‘name’]; //获取客户端机器原文件的名称
$type=strstr($name,”.”); //获取从”.”到最后的字符 if($type!=”.txt”)
{ echo “对不起,您上传文件的格式不正确!!”;
echo “<meta http-equiv=”Refresh”
content=”3;url=index.php?lmbs=文件上传”>将在3秒钟后返回前页…”;
}

$temppath=$upfile[‘tmp_name’]; $fileinfo=pathinfo($upfile[‘name’]);
$extension=$upfile[‘type’]; //echo $extension; //exit; switch(
$extension ) { case ‘application/msword’: $extension =’doc’; break; case
‘application/vnd.ms-excel’: $extension =’xls’; break; case
‘application/vnd.openxmlformats-officedocument.wordprocessingml.document’:
$extension =’docx’; break; case ‘application/vnd.ms-powerpoint’:
$extension =’ppt’; break; case ‘application/pdf’: $extension =’pdf’;
break; case
‘application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’:
$extension =’xlsx’; break; default:
die(‘只允许上传doc,docx,xls,pdf,ppt文件 a href=a.php重新上传/a’); }

上面的方法说实话只能骗小朋友了,只要我们把上传文件的后缀名改一下就可能通过上面验证

上面实例就限制了只能上传doc,docx,xls,pdf,ppt了,这样如果有人想利用后缀名上传其它如php或asp文件就存在会提示上传文件不合法。

稍加改进后这样就与文件后缀名无关了

 代码如下

$temppath=$upfile[‘tmp_name’];
$fileinfo=pathinfo($upfile[‘name’]);
$extension=$upfile[‘type’];
switch( $extension )
{
    case ‘application/msword’:
    $extension =’doc’;
    break;
    case ‘application/vnd.ms-excel’:
    $extension =’xls’;
    break;
    case
‘application/vnd.openxmlformats-officedocument.wordprocessingml.document’:
    $extension =’docx’;
    break;
    case ‘application/vnd.ms-powerpoint’:
    $extension =’ppt’;
    break;
    case ‘application/pdf’:
    $extension =’pdf’;
    break;
    case
‘application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’:
    $extension =’xlsx’;
    break;
    default:
    die(‘只允许上传doc,docx,xls,pdf,ppt文件 <a
href=”wend.php”>重新上传</a>’);
   
 }

id 后缀名 php识别出的文件类型
0 gif image/gif
1 jpg image/jpeg
2 png image/png
3 bmp image/bmp
4 psd application/octet-stream
5 ico image/x-icon
6 rar application/octet-stream
7 zip application/zip
8 7z application/octet-stream
9 exe application/octet-stream
10 avi video/avi
11 rmvb application/vnd.rn-realmedia-vbr
12 3gp application/octet-stream
13 flv application/octet-stream
14 mp3 audio/mpeg
15 wav audio/wav
16 krc application/octet-stream
17 lrc application/octet-stream
18 txt text/plain
19 doc application/msword
20 xls application/vnd.ms-excel
21 ppt application/vnd.ms-powerpoint
22 pdf application/pdf
23 chm application/octet-stream
24 mdb application/msaccess
25 sql application/octet-stream
26 con application/octet-stream
27 log text/plain
28 dat application/octet-stream
29 ini application/octet-stream
30 php application/octet-stream
31 html text/html
32 htm text/html
33 ttf application/octet-stream
34 fon application/octet-stream
35 js application/x-javascript
36 xml text/xml
37 dll application/octet-stream
38 dll application/octet-stream

发表评论

电子邮件地址不会被公开。 必填项已用*标注