判断用户上传的是否为图片,最简单的方法是后缀名。但是这样判断的话,***还是可以把运行文件上传进去。所以不能仅仅判断后缀名,我们要读取图片的2个字节,判断一下是不是图片。这个函数是我朋友共享的,我现在共享给大家。有什么漏洞希望大家提出来,共同商讨!谢谢

  1. //判断上传的是不是图片 
  2. public function  pic ($fileName){ 
  3.     $file     = fopen($fileName"rb"); 
  4.     $bin      = fread($file, 3); //只读2字节 
  5.  
  6.     fclose($file); 
  7.     $strInfo  = @unpack("C2chars"$bin); 
  8.     $typeCode = intval($strInfo['chars1'].$strInfo['chars2']); 
  9.     $fileType = ''
  10.  
  11.     if($typeCode == 255216 /*jpg*/ || $typeCode == 7173 /*gif*/ || $typeCode == 13780 /*png*/) { 
  12.         return $typeCode
  13.     }else
  14.        // echo '"仅允许上传jpg/jpeg/gif/png格式的图片!'; 
  15.         return false; 
  16.     }