首页 > 语言 > PHP > 正文

php获取上传文件类型 获取文件后缀

2024-09-04 11:44:48
字体:
来源:转载
供稿:网友

本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断.

代码如下:

  1. //获得图片的格式,包括jpg,png,gif 
  2. function get_type($img_name)//获取图像文件类型 
  3.  if (preg_match("/.(jpg|jpeg|gif|png|bmp)$/i"$img_name$matches)){ 
  4.   $type = strtolower($matches[1]); 
  5.  }else
  6.   $type = "string"
  7.  } 
  8.  return $type
  9.  
  10. //判断上传文件类型 
  11. $allowedextensions = array("txt","csv","htm","html","xml",    
  12.     "css教程","doc","xls","rtf","ppt","pdf","swf","flv","avi",    
  13.     "wmv","mov","jpg","jpeg","gif","png");     
  14.     foreach ($_files as $file) {    
  15.     if ($file['tmp_name'] > '') {    
  16.       if (!in_array(end(explode(".",    
  17.             strtolower($file['name']))),    
  18.             $allowedextensions)) {    
  19.        die($file['name'].' is an invalid file type!<br/>'.    
  20.         '<a href="网页特效:history.go(-1);">'.    
  21.         '&lt;&lt go back</a>');    
  22.       }    
  23. }    
  24. }   
  25.  
  26. //另类的读取文件与图片类型 
  27.  
  28. function checktitle($filename) { 
  29. $file     = fopen($filename"rb"); 
  30. $bin      = fread($file, 2); //只读2字节 
  31. fclose($file); 
  32. $strinfo  = @unpack("c2chars"$bin); 
  33. $typecode = intval($strinfo['chars1'].$strinfo['chars2']); 
  34. $filetype = ""
  35. switch ($typecode
  36.  case 7790: 
  37.  $filetype = 'exe'
  38.  break
  39.  case 7784: 
  40.  $filetype = 'midi'
  41.  break
  42.  case 8297: 
  43.  $filetype = 'rar'
  44.  break
  45.  case 255216: 
  46.  $filetype = 'jpg'
  47.  break
  48.  case 7173: 
  49.  $filetype = 'gif'
  50.  break
  51.  case 6677: 
  52.  $filetype = 'bmp'
  53.  break
  54.  case 13780: 
  55.  $filetype = 'png'
  56.  break
  57.  default
  58.  $filetype = 'unknown'.$typecode
  59. //fix 
  60. if ($strinfo['chars1']=='-1' && $strinfo['chars2']=='-40' ) { 
  61. return 'jpg'
  62. if ($strinfo['chars1']=='-119' && $strinfo['chars2']=='80' ) { 
  63. return 'png'
  64. return $filetype
  65. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表