使用finfo_file()函数检测上传图片的类型

简介:
+关注继续查看

该函数可以检测文件的MIME类型。因为有时候我们只根据文件后缀来判断是不准确的。

function getMIME($filename){
    $finfo = finfo_open(FILEINFO_MIME_TYPE); 
    return finfo_file($finfo, $filename); 
}

echo getMIME('test.jpg'); //image/jpeg

finfo_file 文档

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

finfo_file -- finfo::fileReturn 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>

如果是jpg文件,输出image/jpeg。

目录
相关文章
|
2月前
|
开发者
处理base64图片数据的方式
处理base64图片数据的方式
26 4
|
3月前
|
API
调用图片转PDF功能时返回DocProcessError错误
调用图片转PDF功能时返回DocProcessError错误
29 3
|
3月前
后端返回的base64流形式的图片,怎么放在src中
后端返回的base64流形式的图片,怎么放在src中
|
4月前
控制台图片路径错误,显示[object Module],解决办法
控制台图片路径错误,显示[object Module],解决办法
43 0
|
4月前
返回目录中所有JPG图像的文件名列表
返回目录中所有JPG图像的文件名列表
|
11月前
DeepStream中,获得并修改识别对象参数的代码
DeepStream中,获得并修改识别对象参数的代码
85 0
|
12月前
|
PHP 调度 数据安全/隐私保护
【源码解读】TP5读取本地图片输出后,设置header头无效,图片乱码
在Thinkphp程序中读取本地图片,做出加工处理(如合并二维码等水印),然后输出给客户端,一直输出图片内容乱码。 设置了header image/png 不生效。 写下这篇TP源码排查文章,看看问题到底出现在哪个步骤。
332 0
【源码解读】TP5读取本地图片输出后,设置header头无效,图片乱码
|
数据安全/隐私保护
批量注册图片,可以根据需要修改data,base64编码
批量注册图片,可以根据需要修改data,base64编码
77 0
批量注册图片,可以根据需要修改data,base64编码
|
文字识别 Python
OCR接口全文识别高精版本地图片以及URL调用Python示例
官方完整项目似乎缺少了alibabacloud_darabonba_stream,直接导入项目,这边提示缺少依赖,后来手动导入后成功了
587 0
OCR接口全文识别高精版本地图片以及URL调用Python示例
|
JSON 前端开发 JavaScript
上传文件返回数据提示下载
上传文件返回数据提示下载