微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

information about a file,This function is used to get information about a file.

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

rush:PHP;"> <Meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>


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 "$filename "; } $finfo = finfo_open(FILEINFO_MIME_TYPE); //$mime = finfo_file($finfo,dirname(__FILE__)."/".$filename); $mime = finfo_file($finfo,$savepath); echo $mime; } ?>

需要注意

的是,

= 5.3.0,如果低于 5.3,那么需要到 PHP.ini 里,将 extension=PHP_fileinfo.dll 前面的分号去掉来启用

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

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》及《

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐