php判断文件上传图片格式的实例详解

yipeiwu_com6年前PHP代码库

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防止用户重复提交表单

我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦。...

PHP读写文件高并发处理操作实例详解

本文实例讲述了PHP读写文件高并发处理操作。分享给大家供大家参考,具体如下: 背景: 最近公司游戏开发需要知道游戏加载的流失率。因为,我们做的是网页游戏。玩过网页游戏的人都知道,进入游戏...

php使用正则验证中文

php用preg_match来匹配并判断一个字符串中是否含有中文或者都是中文的方法如下: $str = 'php学习博客'; if(preg_match('/[\x7f-\xff]/...

Opcache导致php-fpm崩溃nginx返回502

我这个博客为了提高运行效率在vps上装了opcache扩展,结果发现有个页面返回502,其他页面正常。 检查了php-fpm日志,发现是php-fpm子进程不知道为什么会崩溃,然后把op...

php面向对象之反射功能与用法分析

本文实例讲述了php面向对象之反射功能与用法。分享给大家供大家参考,具体如下: 个人对反射定义的理解: 首先得说说什么叫反射。对于一个新手来说,反射这个概念常常给人一种似懂非懂的 感觉,...