$_FILES[“图像”][“类型”] 未正确过滤


$_FILES['image']['type'] not filtering properly

我的英语不太好,对不起。

我正在使用 PHP 语言,但在上传个人资料图像时遇到问题我的代码根据类型过滤图像,但在服务器上,我的文件不属于可接受的类型,始终来自同一 IP。

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

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

我假设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);
}

希望这有帮助