Проверка, является ли переменная $ _FILES пустой при отправке, например: variableIsEmpty ($ _ FILES ["icon"]) - PullRequest
0 голосов
/ 26 апреля 2020

Я хотел бы проверить, является ли переменная $ _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
}

, и это условие по умолчанию для вышеуказанного, которое всегда выполняется и означает, что вышеуказанные условия всегда возвращают false, даже если я не выбираю файл:

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

1 Ответ

0 голосов
/ 26 апреля 2020

Оказывается, переменная на самом деле установлена ​​из-за поля ввода, которое находится в форме, но атрибуты файла, такие как $_FILES["icon"]["name"], $_FILES["icon"]["tmp_name"] и все они пусты, потому что файл не выбран, спасибо

...