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程序?
Dec 08 PHP
一个PHP操作Access类(PHP+ODBC+Access)
Jan 02 PHP
php header示例代码(推荐)
Sep 08 PHP
php抓取页面的几种方法详解
Jun 17 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP下载文件函数与用法示例
Sep 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
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
js如何打印object对象
2015/10/16 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
2017/06/21 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
微信小程序实现分享商品海报功能
2019/09/30 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
浅析Python函数式编程
2018/10/06 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
基于Python绘制个人足迹地图
2020/06/01 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
全球精选男装和家居用品:Article
2020/04/13 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
护士的岗位职责
2013/12/04 职场文书
建筑管理专业求职信
2014/07/28 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
幼儿园师德师风心得体会
2016/01/12 职场文书
《落花生》教学反思
2016/02/16 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
Python如何导出导入所有依赖包详解
2021/06/08 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL