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 金额数字转换成英文
May 06 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
PHP循环结构实例讲解
Feb 10 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
微信支付开发告警通知实例
2016/07/12 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
九种js弹出对话框的方法总结
2013/03/12 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
jQuery fadeOut 异步实例代码详解
2016/08/18 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
linux服务器快速卸载安装node环境(简单上手)
2021/02/22 Javascript
python实现在windows下操作word的方法
2015/04/28 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
详解Python自建logging模块
2018/01/29 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
Python 虚拟空间的使用代码详解
2019/06/10 Python
解决Django连接db遇到的问题
2019/08/29 Python
pandas-resample按时间聚合实例
2019/12/27 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
七年级生物教学反思
2014/01/30 职场文书
公益广告标语
2014/06/19 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
表扬信格式模板
2015/05/05 职场文书
建国大业观后感600字
2015/06/01 职场文书
Python使用openpyxl模块处理Excel文件
2022/06/05 Python