Переменная оператора Else не может хранить данные в PHP

#php

#php

Вопрос:

 if(isset($_FILES['image'])) {
    $file_name = $_FILES['image']['name'];

    if($file_size > 2097152){
       $errors[]='File size must be excately 2 MB';
    }

    if(empty($errors) == true){
        move_uploaded_file($file_tmp,"../img/images/".$file_name);
    }

} else {
    $file_name = $db_con->escape_string($_POST['image_old']); // Why this data will not stored in the file_name variable?
}
  

Комментарии:

1. Каким образом это не работает?

2. @MohammadMalek PHP не волнует 3v4l.org/dDHDm

3. Я пытался, но результат тот же.

4. Но в другом файле <?php $ _SERVER[‘PHP_SELF’] ?> она работает, но я использую действие вне файла, и она исчезла. Результат пуст для моего image_old.

5. Хотя Else statement variable это забавное обозначение, $file_name объявление в каждой из «областей then и else » вполне может быть вашей проблемой — особенно если вы попытаетесь использовать ее после if-then-else . Тем не менее, обрабатывайте большие данные, такие как изображения или файлы, как большие данные , а не текст / строки, используя файлы или PDF-файлы вместо литералов, представленных в виде строк.

Ответ №1:

Почему эти данные не будут сохранены в переменной file_name?

Потому что isset($_FILES['image']) всегда имеет значение true при вводе формы, даже если к ней не были прикреплены файлы.

Если вы хотите проверить наличие пустых изображений, тогда вам нужно посчитать входные изображения.

Самый простой способ — просто проверить количество элементов в массиве с !empty($_FILES['image']) значением isset($_FILES['image'])

Но вы также можете проверить входные изображения, являются ли они правильными файлами, и только после этого перейти к else инструкции.

Например:

 $countOfGoodImages = 0;
if ( !empty($_FILES['image']) ) {
  foreach ($_FILES['image'] as $imageValue) {
    if ( isImageIsGoodForMe($imageValue) ) {
      $countOfGoodImages  ;
    }
  }
}

if ($countOfGoodImages) {
  // good images
} else {
  // use old images
}
  

Комментарии:

1. Прохладный.. Большое вам спасибо, теперь я знаю ^^