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版本较低的情况下也可以使用。
总之,无论你使用哪种方法来判断文件类型,在上传文件时一定要认真检查文件的合法性,避免一些不必要的安全问题的出现。