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通过获取头信息判断图片类型的方法
- php图片处理函数获取类型及扩展名实例
- PHP检测数据类型的几种方法(总结)
- 利用PHP实现智能文件类型检测的实现代码
- php通过文件头检测文件类型通用代码类(zip,rar等)
- PHP判断上传文件类型的解决办法
- php判断文件上传类型及过滤不安全数据的方法
- php 读取文件头判断文件类型的实现代码
- PHP取二进制文件头快速判断文件类型的实现代码
- php 上传文件类型判断函数(避免上传漏洞 )
- php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
- PHP 文件类型判断代码
- 使用finfo_file()函数检测上传图片的类型
- 使用finfo_file()函数检测上传图片的类型
- HTML使用FileReader对象的readAsDataURL()方法实现图片的上传预览效果
- yii使用activeFileField控件实现上传文件与图片的方法
- yii使用activeFileField控件实现上传文件与图片的方法
- php使用ob_start()实现图片存入变量的方法
- [PHP]移动端网页如何使用JqueryMobile+PHP实现上传图片的功能
- Html input(file)实现图片的上传 判断图片的大小和类型
- PHP设置图片文件上传大小的具体实现方法
- PHP批量上传图片的具体实现方法介绍.
- PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
- thinkphp实现UploadFile.class.php图片上传功能
- 使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
- php实现按指定大小等比缩放生成上传图片缩略图的方法
- 使用MYSQL、PHP和FLEX实现上传图片,动态在DataGrid中添加下载按钮和上传的图片.
- PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
- php上传图片自动生成缩略图方法函数
- .NET上传图片的方法(使用控件FILEUpdate)
- js实现上传图片类型大小的检测代码
- 使用php+apc实现上传进度条且在IE7下不显示的问题解决方法