好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

利用js,例1代码如下:

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

例2,代码如下:

<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( '.' )    +1,length)))1; ")){alert(" Allowed file types:n"+af);obj.createTextRange().execCommand( 'delete' )};  }}  </script>  <form>  <input type=file name=path onpropertychange= "ck(this)" /></form> 

例3,代码如下:

/*    * 判断图片类型    *     * @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中的一种" );      //开源代码phpfensi.com      ths.value =  "" ;      return  false;    }   }    return  true;  } 

如果是利用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' ];  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

查看更多关于php限制上传文件类型程序代码 - php上传下载的详细内容...

  阅读:53次