Почему загрузка изображения завершается ошибкой is_uploaded_file php?

У меня есть htmlформа, которая позволяет загружать изображения, но по какой-то причине загруженное изображение теперь не проверяет проверку «is_uploaded_file».

Итак, почему загрузка не позволяет проверить is_uploaded_file?

HTML:

<form enctype="multipart/form-data" id="RecipeAddForm" method="post" action="/recipes/add" accept-charset="utf-8"> <!--- Omitted Markup --> <input type="file" name="data[Recipe][image]" value="" id="RecipeImage" /> <!--- Omitted Markup --> </form> 

PHP:

 // returns false echo is_uploaded_file($file['tmp_name'])?'true':'false'; 

Я сделал дамп в файле $ file или $ _FILES:

 Array ( [name] => add or remove.jpg [type] => image/jpeg [tmp_name] => E:\\xampp\\tmp\\phpB9CB.tmp [error] => 0 [size] => 71869 ) 

Размер файла не слишком велик, а ошибка равна 0. Так почему же это ошибка проверки is_uploaded_file?

Может возникнуть проблема с окнами, поскольку он чувствителен к регистру и не будет соответствовать, если путь отличается. Попробуйте использовать realpath($file['tmp_name'])

попробуйте

 if (is_uploaded_file($_FILES['data[Recipe][image]']['tmp_name'])) 

помните, что $_FILES – это резервная PHP-суперглобальная переменная .. всегда пишите в капитал

u может получить правильный путь к файлу, используя

$filename = basename($_FILES['userfile']['name']);

ПРИМЕЧАНИЕ: почему вы используете массив в атрибуте name ( name = "data [Recipe] [image]" )?

если нет особых причин, то alwayz сделать простой код

 <input type="file" name="RecipeImage" value="" id="RecipeImage" /> 

и просто проверьте

  if (is_uploaded_file($_FILES['RecipeImage']['tmp_name'])) 

Запомнить KISS

После того, как вы использовали загруженное изображение (move_uploaded_file), функция is_uploaded_file всегда возвращает false.