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


Posted in PHP onSeptember 30, 2017

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 getsiteurl()函数
Sep 05 PHP
一个简单的网页密码登陆php代码
Jul 17 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
Yii学习总结之安装配置
Feb 22 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP实现分布式memcache设置web集群session同步的方法
Apr 10 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 #PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 #PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 #PHP
php使用curl下载指定大小的文件实例代码
Sep 30 #PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 #PHP
PHP 获取 ping 时间的实现方法
Sep 29 #PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 #PHP
You might like
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
jquery中EasyUI实现同步树
2015/03/01 Javascript
JavaScript从数组中删除指定值元素的方法
2015/03/18 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
基于javascript实现最简单选项卡切换
2017/02/01 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
python使用matplotlib绘制折线图教程
2017/02/08 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
会计学个人自荐信模板
2013/12/13 职场文书
教师评语大全
2014/04/28 职场文书
室内设计专业自荐信
2014/05/31 职场文书
2014离婚协议书范文
2014/09/10 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014小学年度工作总结
2014/12/20 职场文书
瘦西湖导游词
2015/02/03 职场文书
公司催款律师函
2015/05/27 职场文书
与死神共舞观后感
2015/06/15 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
Python访问Redis的详细操作
2021/06/26 Python
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android
Python Matplotlib库实现画局部图
2021/11/17 Python