验证文件类型

lrenwang , 2010/04/20 14:25 , Php , 评论(0) , 阅读(663) , Via 本站原创 | |
<?php
function check_file($file,$type=false)
{
  $fp = fopen($file, "rb");
  $bin = fread($fp, 2); //只读2字节
  fclose($fp);
  $str_info  = @unpack("C2chars", $bin);
  $type_code = intval($str_info['chars1'].$str_info['chars2']);
  $file_type = '';
  switch ($type_code) {
    case 7790:
      $file_type = 'exe';
      break;
    case 7784:
      $file_type = 'midi';
      break;
    case 8075:
      $file_type = 'zip';
      break;
    case 8297:
      $file_type = 'rar';
      break;
    case 255216:
      $file_type = 'jpg';
      break;
    case 7173:
      $file_type = 'gif';
      break;
    case 6677:
      $file_type = 'bmp';
      break;
    case 13780:
      $file_type = 'png';
      break;
    default:
      $file_type = 'unknown';
      break;
  }
  if ($type==false)
  return $file_type;
  else
  return $type_code;
}
?>


echo check_file('2.jpg')
返回 jpg, 如果不是可能就是挂马了哦,
echo check_file('2.jpg',1)
用于测试未知的文件类型,  我这里是想用在ckeditor的图片自动上传
Tags:
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]