Хорошо, я в замешательстве. Я пытаюсь узнать, как загрузить файл изображения на PHP.
<form name = "add_form" action = "submit.php" method = "post" enctype = "multipart/form-data">
<input type = "file" name = "image">
<button type = "submit">Submit</button>
</form>
в файле submit.php:
print_r($_FILES);
if (empty($_FILES['file']['name'])){
echo "empty";
}else{
echo "not empty";
}
print_r ($ _ ФАЙЛЫ); показывает мне это:
Array ( [image] => Array ( [name] => van Gogh - GalleryPlayer.jpg [type] => image/jpeg [tmp_name] => /tmp/phpbYjG7m [error] => 0 [size] => 1437795 ) )
Но когда я запускаю if / else с помощью (empty ($ _ FILES ['file'] ['name'])), он всегда отображает «пустой». Как он может быть пустым, если он находится в массиве print_r ($ _ FILES)?
Моя конечная цель здесь - проверить, загрузил ли пользователь файл изображения (это часть большей формы). Если они это сделают, используйте это. Если нет, используйте изображение по умолчанию. Итак, я просто пытаюсь проверить наличие поля формы. Есть смысл?
Спасибо за любую информацию, которую вы можете предоставить.
Ваше здоровье!
Ваш вывод print_r() предполагает, что вам следует использовать empty($_FILES['image']['name']), а не ['file']['name'].
Пробовал это: if (empty($_FILES['image']['type'])), а также if ($_FILES['image']['name;] == ""). Оба попадают в первое состояние «пустой». Похоже, что все варианты, которые я пробую, все возвращаются пустыми.
Только что попробовал: if (!file_exists($_FILES['image']['tmp_name']) || !is_uploaded_file($_FILES['image']['tmp_name'])). По-прежнему возвращается пустым.






$ _FILES ['image'] ['name'] в порядке. попробуйте еще раз. Затем аналогичный доступ к другим полям
Нет, это не нормально. Это неправильное имя массива.
Я проверяю, что мой местный правильный, если нет, скажите мне позицию, брат
Для доступа к файлу
nameнеобходимо использовать атрибутif ($_FILES['image']['name'] == "") echo "empty";.