全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP使用finfo_file()函数检测上传图片类型的实现方法

本文实例讲述了PHP使用finfo_file()函数检测上传图片类型的实现方法。分享给大家供大家参考,具体如下:

在输入输出中,文件的交互必不可少,比如文件的上传什么的。这里我们来解决一个小问题,就是如何判断用户上传文件的文件类型。

举一个应用场面:在我们的Web应用中,比如用户上传头像,要求是png,jpg,gif格式,接收到图片后会根据图片格式类型做不同的头像切割处理,但个别用户会传一些只更改过文件后缀的非标准图片,比如nowamagic.jpg 强行修改成 nowamagic.png,这样程序无法对该类型图片进行切割,切割失败。这个时候就需要对文件进行检测,并且仅仅根据后缀来判断是不行的。

这种这么常见的需求,PHP肯定自带了某些函数来实现的,这个函数就是 finfo_file

finfo_file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Return information about a file,This function is used to get information about a file.

函数很简单,看看官方文档就大概清楚了,这里就举一个使用例子吧,就是上传一张图片,并判断它的类型:

<html>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <head>
    <title>文件上传</title>
  </head>
  <body>
  <form accept="" method="post" enctype="multipart/form-data">
  <input type="file" name="img[]" /><br />
  <input type="submit" name="s" /><br />
  </form>
<?php
  //上传文件信息
  $img = $_FILES['img'];
  if ($img)
  {
    //文件存放目录,和本php文件同级
    $dir = dirname(__file__);
    $filename = $img['name'][0];
    $tempname = $img['tmp_name'][0];
    $savepath = "$dir\\$filename";
    $state = move_uploaded_file($tempname, $savepath);
    //如果上传成功,预览
    if($state)
    {
      echo "<img src='$filename' alt='$filename' /> ";
    }
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    //$mime = finfo_file($finfo, dirname(__FILE__)."/".$filename); 
    $mime = finfo_file($finfo, $savepath); 
    echo $mime;
  }
?>
  </body>
</html>

需要注意的是,finfo_file 函数需要 PHP 版本 >= 5.3.0,如果低于 5.3,那么需要到 php.ini 里,将 extension=php_fileinfo.dll 前面的分号去掉来启用

当然,检测文件类型的方式很多种,后面我们会慢慢讲到。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # finfo_file()函数  # 检测  # 上传图片  # 类型  # 检测类型  # php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】  # php通过获取头信息判断图片类型的方法  # php图片处理函数获取类型及扩展名实例  # PHP检测数据类型的几种方法(总结)  # 利用PHP实现智能文件类型检测的实现代码  # php通过文件头检测文件类型通用代码类(zip  # rar等)  # PHP判断上传文件类型的解决办法  # php判断文件上传类型及过滤不安全数据的方法  # php 读取文件头判断文件类型的实现代码  # PHP取二进制文件头快速判断文件类型的实现代码  # php 上传文件类型判断函数(避免上传漏洞 )  # php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)  # PHP 文件类型判断代码  # 上传  # 程序设计  # 上传文件  # 的是  # 相关内容  # 感兴趣  # 给大家  # 很简单  # 这个时候  # 带了  # 后会  # 更多关于  # 来实现  # 讲到  # 必不可少  # 所述  # 需要注意  # 面向对象  # 文件上传 


相关文章: 测试制作网站有哪些,测试性取向的权威测试或者网站?  如何获取开源自助建站系统免费下载链接?  非常酷的网站设计制作软件,酷培ai教育官方网站?  如何通过西部建站助手安装IIS服务器?  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  微信小程序 input输入框控件详解及实例(多种示例)  建站之星如何修改网站生成路径?  宝塔建站无法访问?如何排查配置与端口问题?  建站主机是否属于云主机类型?  如何快速生成ASP一键建站模板并优化安全性?  独立制作一个网站多少钱,建立网站需要花多少钱?  建站之星导航配置指南:自助建站与SEO优化全解析  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何零成本快速生成个人自助网站?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何在Windows虚拟主机上快速搭建网站?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  如何登录建站主机?访问步骤全解析  jQuery 常见小例汇总  制作网站的基本流程,设计网站的软件是什么?  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星后台管理:高效配置与模板优化提升用户体验  建站之星与建站宝盒如何选择最佳方案?  广平建站公司哪家专业可靠?如何选择?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站主机是什么?如何选择适合的建站主机?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  如何通过云梦建站系统实现SEO快速优化?  微信小程序 五星评分(包括半颗星评分)实例代码  如何在云主机上快速搭建多站点网站?  TestNG的testng.xml配置文件怎么写  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站之星代理费用多少?最新价格详情介绍  如何打造高效商业网站?建站目的决定转化率  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  济南企业网站制作公司,济南社保单位网上缴费步骤?  音乐网站服务器如何优化API响应速度?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  创业网站制作流程,创业网站可靠吗?  如何选择高效稳定的ISP建站解决方案?  建站之星安装路径如何正确选择及配置?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  如何在腾讯云服务器快速搭建个人网站?  海南网站制作公司有哪些,海口网是哪家的?  ,如何利用word制作宣传手册?  装修招标网站设计制作流程,装修招标流程?  如何快速生成可下载的建站源码工具?  如何在阿里云虚拟服务器快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。