PHP没有向表单发送图像

时间:2016-06-19 20:13:13

标签: php

所以我有一些形式,接受图像。但是,我一定不明白。 基本上,当选择图像时,我希望它被检查,然后上传。如果没有选择图像,我不在乎,因为它不是必需的。

但是,如果没有选择上传图像,则仍会检查图像等,并且不会发生回声。发生了什么事?

        if(isset($_FILES["fileToUpload"]))
        {
            $target_file = $_FILES["fileToUpload"];
            include ('../config/imageCheck.php');
        }
        else
        {
            echo "no image";
        }

P.S。过去5天我一直在研究这个大学项目,对不起,如果我的问题不是最好的! :)

3 个答案:

答案 0 :(得分:0)

我不知道这个代码的另一面发生了什么,但是如果你有一个带有图片上传元素的表单,那么它可能会返回" false"如果未选择图像。在这种情况下,你的" isset"功能会收到回复" false"或" 0"并且isset将是真实的,因为" false"或" 0"也是一个价值。

也许您应该将代码修改为:

if($_FILES["fileToUpload"])

答案 1 :(得分:0)

根据文档("Error Messages Explained"$_FILES["fileToUpload"]['error'],如果没有上传文件,则其值为4.

if( $_FILES['picture']['error'] != 4 ) {
    echo "Do stuff...";
} else {
    echo "No image";
}

答案 2 :(得分:0)

您应该使用is_uploaded_file()函数来检查文件是否已上传,因此您的代码应如下所示:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])){
    // A file has been uploaded
    $target_file = $_FILES["fileToUpload"];
    include ('../config/imageCheck.php');
}else{
    // User hasn't uploaded any file
    echo "no image";
}

或者更好的是,将file_exists()功能与is_uploaded_file()结合使用,如下所示:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name']) && file_exists($_FILES['fileToUpload']['tmp_name'])){
    // A file has been uploaded
}else{
    // User hasn't uploaded any file
}

以下是参考资料: