淘先锋技术网

首页 1 2 3 4 5 6 7

php 5.5.7 fileinfo是一款非常重要的PHP扩展,它可以用于检测文件类型,从而避免一些安全问题的出现。比如说你要上传一个文件,如果不检测文件类型,那么就会有可能上传一个恶意文件。但是如果使用fileinfo对上传的文件进行检测,那么就可以及时发现文件类型不正确的问题,从而有效避免安全隐患。

下面我们来看一下如何使用php 5.5.7 fileinfo来检测文件类型。

$fi = finfo_open(FILEINFO_MIME_TYPE);  // 返回mime类型
echo finfo_file($fi, $file);         // 输出mime类型字符串
finfo_close($fi);                        // 关闭资源

上述代码会返回你上传的文件的mime类型,比如说image/jpeg、application/pdf等等。通过这个mime类型,你就可以很好地判断上传的文件是否合法了。

需要注意的是,如果你的PHP版本较低,那么就无法使用php 5.5.7 fileinfo扩展。这种情况下,你可以使用其它一些方法来检测文件类型。比如说通过文件后缀名来判断文件类型:

function get_file_type($file)
{
$file_type = '';
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png' || $ext == 'gif') {
$file_type = 'image';
} elseif ($ext == 'doc' || $ext == 'docx' || $ext == 'txt' || $ext == 'pdf') {
$file_type = 'document';
} else {
$file_type = 'unknown';
}
return $file_type;
}

上述代码通过获取文件的后缀名来判断文件类型,如果文件后缀名是jpg、jpeg、png或gif,则判定为图片文件。如果文件后缀名是doc、docx、txt或pdf,则判定为文档。否则判定为未知文件类型。当然,这种方法不如使用fileinfo判断严谨,但是在PHP版本较低的情况下也可以使用。

总之,无论你使用哪种方法来判断文件类型,在上传文件时一定要认真检查文件的合法性,避免一些不必要的安全问题的出现。