У меня есть 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.