Проверка типа файла (как?)

Eugeniy

Новичок
Проверка типа файла (как?)

Мне нужно чтобы на сайт закачивались только jpg файлы.
Соответственно после аплоада делаю проверку:
PHP:
$uploadfile = getimagesize($DOCUMENT_ROOT."/img/".$filename);
if ($uploadfile[2]!=2) {
     $error.="Файл <b>".$HTTP_POST_FILES['userfile']['name']."</b>, не является файлом картинки jpg;
}
Но не все jpg файлы эта проверка пропускает :(
Точно знаю что файлы отредактированые в Фотожопе и ACDSee пропускает, а остальные не всегда.
Почему так?

P.S. При условии, что информации передаваемой браузером, доверять нельзя.
 

Ajax

Guest
$len=strlen($DOCUMENT_ROOT."/img/".$filename)-4;
$type=substr($DOCUMENT_ROOT."/img/".$filename,$len,4);
if($type!='.jpg')
{
print "error";
}

то есть считываем последние 3 буквы файла и если они не равны jpg То ошибка
 

tony2001

TeaM PHPClub
Ajax:
тебе плохо.

>Точно знаю что файлы отредактированые в Фотожопе и ACDSee
>пропускает, а остальные не всегда.
Евгений, какие конкретно остальные?
какая версия РНР, ОС, вебсервера?
 

Ajax

Guest
Originally posted by tony2001
Ajax:
тебе плохо.

>Точно знаю что файлы отредактированые в Фотожопе и ACDSee
>пропускает, а остальные не всегда.
Евгений, какие конкретно остальные?
какая версия РНР, ОС, вебсервера?
мне хорошо... !!! мой метод работает
 

tony2001

TeaM PHPClub
твой метод работает НА ВСЕХ файлах с расширением jpg.
а ему нужно только настоящие jpg, а не своп от винды с расширением jpg.
 

Eugeniy

Новичок
Ajax:
Так точно всякую фигню напихают.

tony2001:
>Евгений, какие конкретно остальные?
например файлы сохраненые с фотоаппарата (не со всех правда). Они jpg, но этот скрипт их не пропускает. Я их отрываю в ACDSee или в фотошопе, пересохраняю и тогда все нормально.

>какая версия РНР, ОС, вебсервера?
PHP Version 4.0.5
Apache/1.3.20
 

tony2001

TeaM PHPClub
Originally posted by Eugeniy
>какая версия РНР, ОС, вебсервера?
PHP Version 4.0.5
Apache/1.3.20
дальнейшее обсуждение не имеет смысла до тех пор, пока не будут стоять последние версии.
на данный момент это 4.3.2 & 1.3.28 соотв-но.
 
Сверху