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 生成饼图 三维饼图
Sep 28 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
php导入导出excel实例
Oct 25 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
详解Yii2.0 rules验证规则集合
Mar 21 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
php定期拉取数据对比方法实例
Sep 22 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
层叠菜单的动态生成
2006/10/09 PHP
PHP VS ASP
2006/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
SSI指令
2006/11/25 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
记录几个javascript有关的小细节
2007/04/02 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
python实现划词翻译
2020/04/23 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
详解Numpy数组转置的三种方法T、transpose、swapaxes
2019/05/27 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
使用Windows批处理和WMI设置Python的环境变量方法
2019/08/14 Python
python实现的分层随机抽样案例
2020/02/25 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
上课迟到检讨书
2014/02/19 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
校庆团日活动总结
2014/08/28 职场文书
企业贷款委托书格式
2014/09/12 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python