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框架的性能
Jan 10 PHP
php 生成文字png图片的代码
Apr 17 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
php中如何防止表单的重复提交
Aug 02 PHP
php共享内存段示例分享
Jan 20 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
php的instanceof和判断闭包Closure操作示例
Jan 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
PHP实现图片旋转效果实例代码
2014/10/01 PHP
使用URL传输SESSION信息
2015/07/14 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
ThinkPHP框架里隐藏index.php
2016/04/12 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
基于JavaScript实现数码时钟效果
2020/03/30 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python爬取内容存入Excel实例
2019/02/20 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
Python检测数据类型的方法总结
2019/05/20 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
IBatis持久层技术
2016/07/18 面试题
50岁生日感言
2014/01/23 职场文书
迎新晚会邀请函
2014/02/01 职场文书
德语专业求职信
2014/03/12 职场文书
物理课外活动总结
2014/08/27 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
事业单位个人总结
2015/02/12 职场文书
环卫个人总结
2015/03/03 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
会计求职信怎么写
2015/03/20 职场文书
2015年高校教师个人工作总结
2015/05/25 职场文书