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文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
php 小乘法表实现代码
Jul 16 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
ThinkPHP3.1数据CURD操作快速入门
Jun 19 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
php控制文件下载速度的方法
Mar 24 PHP
curl和libcurl的区别简介
Jul 01 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
May 29 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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实现paypal整合方法
2010/11/28 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
js常见表单应用技巧
2008/01/09 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
js动态在form上插入enctype=multipart/form-data的问题
2012/05/24 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
2013/06/24 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
简单实现JS倒计时效果
2016/12/23 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
利用Python读取文件的四种不同方法比对
2017/05/18 Python
PyQT实现多窗口切换
2018/04/20 Python
Python中logging实例讲解
2019/01/17 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
接受捐赠答谢词
2014/01/27 职场文书
本科毕业生自荐信
2014/06/02 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
大学新生入学感想
2015/08/07 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
python编程项目中线上问题排查与解决
2021/11/01 Python
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电