PHP文件类型检查及fileinfo模块安装使用详解

1. PHP文件类型检查

在web开发中,经常需要上传文件,如图片、音乐、视频等,但上传的文件并不一定是所期望的类型,为了防止上传不合法的文件,我们可以进行文件类型检查。

1.1. 文件类型获取

在PHP中,我们可以通过$_FILES超级全局变量来获取上传文件的类型,其类型值可以使用type属性来表示,但是这个type值并不可靠,因为不同的操作系统或Web服务器,可能会返回不同的值。

我们可以通过finfo模块来获取上传文件的MIME类型,简单介绍下该模块。

2. fileinfo模块

fileinfo是PHP自从5.3.0版本后,内置的一个重要扩展模块,可以检测文件的真实类型。在此之前,我们使用的通常是mime_content_type函数来检测文件类型。

2.1. 安装

fileinfo模块需要在PHP中进行启用,如果发现PHP中没有安装该模块,则需要先安装模块。

在Linux系统中运行以下命令来安装fileinfo模块:

sudo apt-get install php7.0-fileinfo

上述命令是用apt-get来安装,如果使用yum的话,则将apt-get替换为yum即可。

在Windows系统中使用XAMPP集成环境、WAMP集成环境或Bitnami集成环境时,fileinfo模块包含在其中,我们只需在PHP.ini文件中checkbox前打勾即可启动。

2.2. 使用

在安装了fileinfo模块之后,我们就可以使用它来获取文件类型了。

代码示例:

if (isset($_FILES['yourfile'])) {

// 获取上传文件的MIME类型

$finfo = finfo_open(FILEINFO_MIME_TYPE);

echo finfo_file($finfo, $_FILES['yourfile']['tmp_name']);

finfo_close($finfo);

}

上面的代码,首先通过finfo_open()函数打开一个fileinfo资源,进而使用finfo_file()函数检测文件类型,最后通过finfo_close()函数关闭fileinfo资源。

后端开发标签