当前位置:首页 > PHP教程 > php上传下载 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-06 14:22:33 浏览: 评论:0 

本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用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. ?> 

Tags: 文件 后缀 类型

分享到: