1

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

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

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

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

1 回答 1

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);
}

希望这可以帮助

于 2013-11-14T18:50:03.613 回答