用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php限制上传文件类型程序代码

时间:2015-01-23  来源:西部数据  作者:西部数据

我们一般不会在前端限制用户上传文件时的文件类,因为也没什么好的办法来限制只能使用像php,asp这类来操作,下面我来介绍利用js来定义type=file浏览上传时的文件类型与php中限制上传文件类型代码.

利用js,例1代码如下:

  1. <script> 
  2. function check(){ 
  3. var filepath=path.value 
  4. filepath=filepath.substring(filepath.lastIndexOf('.')+1,filepath.length) 
  5. if(filepath != 'jpg' && filepath != 'gif'
  6. alert("只能上传JPG或GIF格式的图片"
  7. </script> 
  8.  
  9. <input type=file name=path onpropertychange="check()"> (只能上传JPG或GIF格式的图片) 

例2,代码如下:

  1. <script> 
  2. function ck(obj){if(obj.value.length>0){ 
  3. var af="jpg,gif,png,zip,rar,txt,htm"
  4. if(eval("with(obj.value)if(!/"+af.split(",").join("|")+"/ig.test(substring(lastIndexOf('.'
  5.  
  6. +1,length)))1;")){alert("Allowed file types:n"+af);obj.createTextRange().execCommand('delete')}; 
  7. }} 
  8. </script> 
  9. <form> 
  10. <input type=file name=path onpropertychange="ck(this)"/></form> 

例3,代码如下:

  1. /* 
  2.  * 判断图片类型 
  3.  *  
  4.  * @param ths  
  5.  *    type="file"的javascript对象 
  6.  * @return true-符合要求,false-不符合 
  7.  */ 
  8. function checkImgType(ths){ 
  9.  if (ths.value == "") { 
  10.   alert("请上传图片"); 
  11.   return false; 
  12.  } else { 
  13.   if (!/.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(ths.value)) { 
  14.    alert("图片类型必须是.gif,jpeg,jpg,png中的一种"); 
  15.    //开源代码phpfensi.com 
  16.    ths.value = ""
  17.    return false; 
  18.   } 
  19.  } 
  20.  return true; 

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

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

上面的方法说实话只能骗小朋友了,只要我们把上传文件的后缀名改一下就可能通过上面验证,稍加改进后这样就与文件后缀名无关了,代码如下:

  1. $temppath=$upfile['tmp_name']; 
  2. $fileinfo=pathinfo($upfile['name']); 
  3. $extension=$upfile['type']; 
  4. switch$extension ) 
  5.     case 'application/msword'
  6.     $extension ='doc'
  7.     break
  8.     case 'application/vnd.ms-excel'
  9.     $extension ='xls'
  10.     break
  11.     case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  12.     $extension ='docx'
  13.     break
  14.     case 'application/vnd.ms-powerpoint'
  15.     $extension ='ppt'
  16.     break
  17.     case 'application/pdf'
  18.     $extension ='pdf'
  19.     break
  20.     case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  21.     $extension ='xlsx'
  22.     break
  23.     default
  24.     die('只允许上传doc,docx,xls,pdf,ppt文件 <a href="wend.php">重新上传</a>'); 
  25.      
  26.  } 

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
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门