PHP 文件上传错误情况

PHP file upload error conditions

我正在尝试创建配置文件编辑设置。似乎只有在上传图像时才编辑信息。我发现允许将错误消息作为条件允许进行更多操作,所以我尝试了它,现在我的条件语句无法正常工作。

if($_FILES['files']['error']==0) {

    print_r($_FILES['files']['error']);
    echo "if";

    foreach($_FILES['files']['name'] as $file => $name) {
        $filename = $name;

        try{
            if(move_uploaded_file($_FILES['files']['tmp_name'][$file],'uploads/'.$filename)) {
                $updateInfo = $db->prepare("UPDATE users SET image       = :image, aboutme     = :aboutme WHERE id = :id");

                $updateInfo->bindParam(":image", $filename);
                $updateInfo->bindParam(":id", $_SESSION['user']['id']);
                $updateInfo->bindParam(':aboutme', $aboutme);

                $updateInfo->execute(); 
            }
        } catch(Exception $e) {
            echo $e;
        } 
    }
} elseif($_FILES['files']['error'] == 4) {
    print_r($_FILES['files']['error']);
    echo "Elseif";

    try{
        $updateInfo = $db->prepare("
        UPDATE users
        SET 
            aboutme     = :aboutme

            WHERE id = :id
        ");
        $updateInfo->bindParam(':id', $_SESSION['user']['id']);
        $updateInfo->bindParam(':aboutme', $aboutme);


        $updateInfo->execute();
    } catch(Exception $e) {
        echo $e;
    } 
} else{
    print_r($_FILES['files']['error']);
    echo "else";
}

}

当我检查正在发送的数组时,它是正确的但条件错误,即:无论文件检查如何,它都会 运行 else 语句。

我的问题:

除了任何安全或效率缺陷外,我的代码是否有问题?

$_FILES['files']['error'] returns 错误代码以及文件数组。有不同类型的错误代码,所有代码都在下面 link 中提到,详细信息:

请查看

print_r($_FILES['files'])

看看你会得到什么回应。

当您发布数组响应时,您可以通过 $_FILES['files']['error'][0] 获取错误代码或使用下面提到的 switch case link .

详情请看这里: http://php.net/manual/en/features.file-upload.errors.php

还有关于调试,总是从上到下一步步调试代码。如果遇到与数据处理相关的问题,请检查 $_POST、$_FILES、$_SERVER 等详细信息。