php判断文件上传图片格式是否为图片

判断文件图片类型,


  $type     = $_FILES['image']['tmp_name'];//文件名
  //$type     = $this->getImagetype( $type ); 
  $filetype = ['jpg', 'jpeg', 'gif', 'bmp', 'png'];
  if (! in_array($type, $filetype))
  {  
        return "不是图片类型";
  }

如上如果用户修改文件后缀为png jpeg等无法满足,查了查资料解决方法是采用判断文件的二进制流信息,如果你刚好遇到这种问题不妨尝试一下:

    //*判断图片上传格式是否为图片 return返回文件后缀
    public function getImagetype($filename)
    {
        $file = fopen($filename, 'rb');
        $bin  = fread($file, 2); //只读2字节
        fclose($file);
        $strInfo  = @unpack('C2chars', $bin);
        $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
        // dd($typeCode);
        $fileType = '';
        switch ($typeCode) {
            case 255216:
                $fileType = 'jpg';
                break;
            case 7173:
                $fileType = 'gif';
                break;
            case 6677:
                $fileType = 'bmp';
                break;
            case 13780:
                $fileType = 'png';
                break;
            default:
                $fileType = '只能上传图片类型格式';
        }
        // if ($strInfo['chars1']=='-1' AND $strInfo['chars2']=='-40' ) return 'jpg';
        // if ($strInfo['chars1']=='-119' AND $strInfo['chars2']=='80' ) return 'png';
        return $fileType;
    }

如果对你有帮助,顶我一下,谢谢!

你可能感兴趣的:(PHP,文件上传,图片类型,php图片上传)