提交时检查 $_FILES 变量是否为空 e.g: variableIsEmpty($_FILES["icon"])

Checking whether the $_FILES variable is empty when submitted e.g: variableIsEmpty($_FILES["icon"])

我想在提交表单时检查 $_FILES 变量是否为空: 我试过这个:

if(!isset($_FILES["icon"])){
echo "Empty File";
#code to assign default icon here
}

还有这个:

if(empty($_FILES["icon"])){
echo "Empty File";
#code to assign default icon here
}

还有这个:

if(count($_FILES["icon"]) == 0){
echo "Empty File";
#code to assign default icon here
}

这是上面的默认 else 条件,它总是执行并且意味着上面的条件总是 return false 即使我没有 select 文件:

else {
echo "File is not empty";
}

是否有另一种方法来检查 $_FILES["icon"] 变量在提交时是否没有值?

注意:enctype="multipart/form-data" 已在表格中设置并在 POST

上提交

这是提交图标的表单。 该文件是一个 php 文件,内容是动态添加的,这是一个包含以下形式的部分:

echo '<form action="' . $_SERVER["PHP_SELF"] . '" method="post" enctype="multipart/form-data">
<input type="file" name="icon"/>Select Icon
<input type="submit" name="upload" value="Upload Icon"/>
</form>';

那么处理表单的代码也在同一个页面:

if(isset($_POST["upload"]){
    if(!isset($_FILES["icon"]){
    echo "Empty file":
    #code to assign default icon here
    else {
    $file_gotten = $_FILES["icon];
    }
}

原来变量实际上是因为表单中的输入字段而设置的,但是文件的属性如$_FILES["icon"]["name"]$_FILES["icon"]["tmp_name"]等都是空的,因为没有文件是已选,谢谢