$ _FILES ['image'] ['type']未正确过滤

时间:2013-11-14 18:47:13

标签: php file-upload

我的英语不太好,抱歉。

我正在使用PHP语言,并且在配置文件图片上传时出现问题 我的代码在服务器上过滤基于类型的图像我有不同类型的文件,总是来自相同的IP。

我认为这是因为我的类型检查但不确定。请帮忙!

$bild = array('jpg', 'jpeg', 'png', 'gif');
if (in_array($_FILES['image']['type'], $bild) {
    mysqli_laden($_FILES);
}

1 个答案:

答案 0 :(得分:2)

我认为mysqli_laden是一个上传到服务器的自定义函数。使用$ _FILES [“image”] [“type”]时要小心,因为它从浏览器而不是文件本身获取信息。您应该使用更可靠的finfo_open函数来验证文件的MIME类型。请在此处查看:http://www.php.net/manual/en/function.finfo-open.php

您的代码看起来像这样

$bild = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif');
$image = $_FILES['image']['type'];
$finfo = new finfo(FILEINFO_MIME);
$image_inf = $finfo->file($image);

if (in_array($image_inf, $bild) {
    mysqli_laden($_FILES);
}

希望这有帮助