使用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::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>

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

目录
相关文章
|
JavaScript 前端开发
input 输入 限制 大全
input 输入 限制 大全
787 0
|
JSON 数据格式
layui富文本编辑器文档layedit组件的调用和图片上传接口的使用
layui富文本编辑器文档layedit组件的调用和图片上传接口的使用
1049 0
|
7月前
|
人工智能 API 网络安全
从“能用”到“好用”:OpenClaw阿里云/本地部署与标准化Skill开发保姆级教程
很多用户使用OpenClaw时都会遇到同一个痛点——输出不稳定:今天执行任务精准高效,明天就“自由发挥”偏离需求;这次输出简洁规范,下次却冗余杂乱。其实问题核心不在于模型本身,而在于缺乏标准化的执行规则。OpenClaw的Skill功能正是解决这一问题的关键,它就像给AI的“固定做事说明卡”,把“做什么、怎么做、输出什么样”固化下来,实现执行结果的稳、快、省。
2470 3
|
弹性计算 Prometheus 运维
一文详解阿里云可观测体系下标签最佳实践
在当今数字化转型加速的时代,企业 IT 系统的复杂度与日俱增,如何高效地管理和监控这些系统成为了一项挑战。阿里云作为全球领先的云计算服务商,提供了一整套全面的可观测性解决方案,覆盖从业务、端侧(小程序、APP、H5 等)、应用、中间件、容器/ECS 等全栈的监控体系,旨在帮助企业构建强大而灵活的可观测性体系。其中,标签(Tag)作为一种核心组织和管理手段,在阿里云可观测体系中扮演着至关重要的角色。本文将深入探讨阿里云可观测系列产品中标签的应用,以及如何运用标签在阿里云可观测产品体系下进行体系化建设并给出相关最佳实践。
1528 223
|
搜索推荐 开发者 UED
如何检测301重定向是否成功:完整指南
301重定向是网站维护与SEO优化的关键技术,用于将旧URL永久指向新URL。本文详解了301重定向的定义、检测必要性及6种检测方法(如浏览器开发者工具、cURL命令、在线工具等),并提供了常见问题排查和最佳实践建议,助您确保重定向成功实施,提升用户体验与搜索引擎优化效果。
1387 19
|
移动开发 前端开发 应用服务中间件
挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP+前端UNiapp源码
挂售转卖竞拍商城系统源码/竞拍系统/转拍闪拍系统/后端PHP+前端UNiapp源码 亲测可用
852 1
|
SQL PHP
【ThinkPHP】like同一个字段多个条件查询
【ThinkPHP】like同一个字段多个条件查询
1063 0
【ThinkPHP】like同一个字段多个条件查询
|
开发框架 JavaScript 前端开发
Web Component -- 即将爆发的原生的 UI 组件化标准
Web Component -- 即将爆发的原生的 UI 组件化标准
|
JavaScript 前端开发 定位技术
GIS开发:开源库计算经纬度坐标和瓦片坐标
GIS开发:开源库计算经纬度坐标和瓦片坐标
688 0

热门文章

最新文章