php 最大大小上传未正确验证


php Maximum size upload not validating properly

if(!empty($employeepic)) {
    if ((($employeepic_type == 'image/jpg') ||($employeepic_type == 'image/jpeg') ||($employeepic_type == 'image/gif') ||
         ($employeepic_type == 'image/png')) && ($employeepic_size <= EMP_MAXSIZE) && ($employeepic_size > 0)){
        // Move the file to the target upload folder
        $target = (EMP_UPLOADPATH .$firstname.$employeepic);
        if(move_uploaded_file($_FILES['employeepic']['tmp_name'],$target)){
            $employee = $firstname. " " .$lastname;
        }
    }else{
        $filetoobig =' <p class="error"> There was a problem uploading your picture. Maximum size is 30K and must be in jpg, jpeg or pjpeg format</p>';
        @unlink($_FILES['employeepic']['tmp_name']);
    }
}

任何人都可以看到为什么文件大小的验证不起作用吗?

(EMP_MAXSIZE = 32768)

编辑:限制大小设置为32768,但仍然可以上传2MB文件

编辑:要分配Employee_pic大小的代码:

$employeepic = mysqli_real_escape_string($dbc, trim($_FILES['employeepic']['name']));
$employeepic_type = $_FILES['employeepic']['type'];
$employeepic_size = $_FILES['employeepic']['size'];

我想通了。 我可能没有做"正确的编码方式",但它仍然解决了问题。 我创建了另一个名为 $employee_pic = $firstname.$employeepic 的变量;在我的验证的 true 部分,并在我的验证错误结果下添加了"employee_pic=';",以便不将图片保存到 MySQL。这是通过在插入查询中更改 $employee_pic 的$employeepic变量来实现的。