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中使用Oracle数据库(6)
Oct 09 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
php获取301跳转URL简单实例
Dec 16 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
thinkphp循环结构用法实例
Nov 24 PHP
CodeIgniter配置之routes.php用法实例分析
Jan 19 PHP
PHP7匿名类用法分析
Sep 26 PHP
完美解决thinkphp唯一索引重复时出错的问题
Mar 31 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
Jun 09 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 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
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
PHP生成图表pChart的示例解析
2020/07/31 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
两个JavaScript jsFiddle JSBin在线调试器
2010/03/14 Javascript
基于jquery ajax 用户无刷新登录方法详解
2012/04/28 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
深入理解react-router@4.0 使用和源码解析
2017/05/23 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
2019/08/28 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
jquery+css3实现的经典弹出层效果示例
2020/05/16 jQuery
uniapp微信小程序实现一个页面多个倒计时
2020/11/01 Javascript
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Python实现结构体代码实例
2020/02/10 Python
Numpy 多维数据数组的实现
2020/06/18 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
如何写自我鉴定
2014/03/19 职场文书
中秋晚会策划方案
2014/06/12 职场文书
快递员岗位职责
2014/09/12 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
Mysql中存储引擎的区别及比较
2021/06/04 MySQL