Трабл при приёме формы с файлом

FRIE

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

Уже бьюсь 2 часа, весь на нервах

PHP:
if (isset($_FILES['file'])) { // смотрю есть ли массив (он есть в любом случае)
	if($_FILES['userfile']['size']!==0){  
// тут по мануалу, если файл не выбран то $_FILES['userfile']['size'] будет равен 0
 	echo "ok";			
	}
}
но эта собака, загрузил ты файл или нет, всегда скажет что $_FILES['userfile']['size'] не равно 0
Когда вывожу echo $_FILES['userfile']['size'], в случае если файл не выбран чтобы посмотреть что там, то там ничего, тоесть пустота. Делаю проверку на пустоту

PHP:
if (isset($_FILES['file'])) {
	if($_FILES['userfile']['size']!==''){  //пустота
 	echo "ok";			
	}
}
Всёравно выведет ok, и вот так тоже

PHP:
if (isset($_FILES['file'])) {
	if($_FILES['userfile']['size']!==' '){  //пробел
 	echo "ok";			
	}
}
 

FRIE

Новичок
я сделал такую проверочку на пустоту имени файла $_FILES['file']['name'], всё заработало.

Но всёравно хочу узнать почему $_FILES['userfile']['size'] не возвращает 0, да и вобще, $_FILES['userfile']['size'] существует, но значение ни 0 ни пустота ни пробел, вобще ничего, но при этом существует и true
 

FRIE

Новичок
http://habrahabr.ru/blogs/jquery/50223/ слегка не то но на правильный путь должно вывести
да это я уже читал. Как загружать файлы я знаю, у меня даже отдельный скрипт написан очень мудрёный, и навороченный =)

Просто не хотелось переделывать на этом сайте систему отправки файла, но понадобилось кое-что изменить, а для этого необходимо определить, выбрал ли пользователь файл, а тут такая засада, $_FILES['userfile']['size'] непойми что, вроде эхом ничего не выводит, и значений никаких не имеет
 

ufolog

Новичок
сделай полностью var_dump($_FILES); там в $_FILES['userfile']['error'] может быть объяснение
 
Сверху