PHP判断上传文件类型最安全,最真实的解决办法

php通过判断上传文件的头字符来判断文件的类型,这可以称得上是最安全,最真实确定上传文件类型的方法了,具体实现方法:

  1. /** 
  2. * 读取文件前几个字节 判断文件类型 
  3. * @return String 
  4. */ 
  5. function checkTitle($filename){ 
  6.     $file=fopen($filename"rb"); 
  7.     $bin=fread($file, 2); //只读2字节 
  8.     fclose($file); 
  9.     $strInfo =@unpack("c2chars"$bin); 
  10.     $typeCode=intval($strInfo['chars1'].$strInfo['chars2']); 
  11.     $fileType=''
  12.     switch($typeCode){ 
  13.         case 7790: 
  14.             $fileType='exe'
  15.         break
  16.         case 7784: 
  17.             $fileType='midi'
  18.         break
  19.         case 8297: 
  20.             $fileType='rar'
  21.         break
  22.         case 255216: 
  23.             $fileType='jpg'
  24.         break
  25.         case 7173: 
  26.             $fileType='gif'
  27.         break
  28.         case 6677: 
  29.             $fileType='bmp'
  30.         break
  31.         case 13780: 
  32.             $fileType='png'
  33.         break
  34.         default
  35.             $fileType='unknown'.$typeCode
  36.         break
  37.     } 
  38.     //Fix 
  39.     if($strInfo['chars1']=='-1' && $strInfo['chars2']=='-40'){ 
  40.         return 'jpg'
  41.     } 
  42.     if($strInfo['chars1']=='-119' && $strInfo['chars2']=='80'){ 
  43.         return 'png'
  44.     } 
  45.     return $fileType

转载请注明:代码家园 » PHP判断上传文件类型最安全,最真实的解决办法

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)