thinkphp5.1 如何判断上传的图片是个图片文件
Posted 代码当酒喝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5.1 如何判断上传的图片是个图片文件相关的知识,希望对你有一定的参考价值。
方法一:通过获取文件mime类型判断
php使用fileinfo需要安装fileinfo
扩展
$fi = new finfo(FILEINFO_MIME_TYPE);
//$mime_type = $fi->file('1.jpg');
$mime_type = $fi->file($file->getInfo()['tmp_name']);
这样就可以得到上传文件的 mime
的type类型,然后可以判断是不是指定的图片
$allow= ['image/jpeg','image/png'];
if(in_array($mime_type,$allow)){
//是图片
}else{
//别的文件
}
拓展知识:
thinkphp的文件上传中的这个参数其实就是通过上面的函数获取的类型
rar
文件上传的mine
的类型不是application/x-rar-compressed
(mine类型大全参考)
而是
application/x-rar
有很多时候自己不知道类型的时候需要自己上传一个指定类型的然后通过上面的函数获取后,才能知道正确的值
参考地址:http://www.djcxy.com/p/46783.html
方案二:getimagesize
getimagesize() 函数将测定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通 HTML 文件中 IMG 标记中的 height/width 文本字符串。
如果不能访问 filename 指定的图像或者其不是有效的图像,getimagesize() 将返回 false 并产生一条 E_WARNING 级的错误。
该函数不需要GD
库
if (!getimagesize($file->getInfo()['tmp_name'])) {
dd("不是图片类型");
}else{
dd("是个图片");
}
这个方法,是不需要自己指定指定的图片的,可以判断任何图片类型。如果不是特殊的需求,用它就很方便的区分图片和图片以外的任意文件
拓展知识点
php中图片的上传,表单验证上传的图片类型,通常是以下图片文件
jpeg, png, bmp, gif, svg, webp
以上是关于thinkphp5.1 如何判断上传的图片是个图片文件的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp5.1+layui图片上传(前端部分.第一种)
thinkphp5.1+layui图片上传(前端部分.第二种)