PHP判断上传文件类型的解决办法

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;
  46. }

希望通过本文对大家学习php程序设计有所帮助。