php通过文件头信息判断上传文件类型的例子

发布时间:2019-11-04编辑:脚本学堂
本文介绍了php通过文件头信息判断上传文件类型的方法,读取上传文件的头文件信息的前2个字节,即可判断出文件类型,需要的朋友参考下。

php文件上传代码中,通过文件头信息实现判断上传文件类型,首先使用用fopen()函数打开上传的文件,然后通过fread()读取文件的前2个字节。
得到二进制的字符串,为了能在程序代码中做判断,使用unpack()函数把二进制数据转换成十进制数字的字符串(unpack()函数主要用于二进制操作,具体用法可参见php手册中的介绍),然后进行判断即可。php大文件上传设置方法  ,php上传大文件问题解析 

代码:
 

复制代码 代码示例:
$filename='http://www.yuju100.com/logo.gif';
$file=fopen($filename,'rb');
$bin=fread($file,2); //只读取上传文件的头文信息的2个字节
fclose($file);
$strInfo=@unpack('c2chars',$bin);
$typeCode=intval($strInfo['chars1'].$strInfo['chars2']);
$fileType='';
switch ($typeCode){
  case 7790:
    $fileType='exe';
  break;
  case 7784:
    $fileType='midi';
  break;
  case 8297:
    $fileType='rar';
  break;
  case 255216:
    $fileType='jpg';
  break;
  case 7173:
    $fileType='gif';
  break;
  case 6677:
    $fileType='bmp';
  break;
  case 13780:
    $fileType='png';
  break;
  default:
    echo 'unknown';
  break;
}
echo '文件类型:'.$fileType.' 文件头信息:'.$typeCode;