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 AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
服务器web工具 php环境下
Dec 29 PHP
php返回json数据函数实例
Oct 09 PHP
PHP队列用法实例
Nov 05 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
Jan 11 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
PHP应用跨时区功能的实现方法
Mar 21 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 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
暴雪前总裁遗憾:没尽早追赶Dota 取消星际争霸幽灵
2020/03/08 星际争霸
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
淘宝中秋节活动方案
2014/01/31 职场文书
家具促销活动方案
2014/02/16 职场文书
财务总监岗位职责
2014/03/07 职场文书
授权委托书格式
2014/07/31 职场文书
美德少年事迹材料500字
2014/08/19 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
教师节表彰会主持词
2015/07/06 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书