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加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php socket方式提交的post详解
Jul 19 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
php 智能404跳转代码,适合换域名没改变目录的网站
Jun 04 PHP
PHP 第一节 php简介
Apr 28 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
php截取指定2个字符之间字符串的方法
Apr 15 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
laravel-admin的图片删除实例
Sep 30 PHP
PHP实现简单登录界面
Oct 23 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 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中使用XML
2006/10/09 PHP
PHP面向对象编程快速入门
2006/12/14 PHP
PHP实现定时生成HTML网站首页实例代码
2008/11/20 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
table对象中的insertRow与deleteRow使用示例
2014/01/26 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
switchery按钮的使用方法
2017/12/18 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
Python修改MP3文件的方法
2015/06/15 Python
python使用pymysql实现操作mysql
2016/09/13 Python
详解K-means算法在Python中的实现
2017/12/05 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python实现扣除个人税后的工资计算器示例
2018/03/26 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python抓包程序mitmproxy安装和使用过程图解
2020/03/02 Python
python 常见的排序算法实现汇总
2020/08/21 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
六查六看剖析材料
2014/02/15 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS