Merhaba arkadaşlar sorunum şu bir script de form ile RESİM yükleniyor bu form'a yüklenen dosyanın türünü bir kaç yöntemle doğrulama yapıyorum normal durumlarda çalışıyor fakat eğer yüklenmeye çalışılan şey sıkıştırılmış bir dosya ise örneğin tar dosyası ise doğrulamadan barılı sonuç ile KURTULUYOR.

Doğrulama satırlarım:

$fileinfo = new finfo(FILEINFO_MIME_TYPE);
if (false === $ext = array_search(
$fileinfo->file($_FILES['filetoupload']['tmp_name']),
array(
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
),
true
)){
//İzin verilen dosya türü değilse çalıştır.
echo "Hata: Bu izin verilen türde bir dosya değil.";
exit;
}
$fileinfo2 = getimagesize($_FILES['filetoupload']['tmp_name']);
if ($fileinfo2['mime'] != 'image/jpeg' &&
$fileinfo2['mime'] != 'image/png' &&
$fileinfo2['mime'] != 'image/gif'){
//İzin verilen dosya türü değilse çalıştır.
echo "Hata: Bu izin verilen türde bir dosya değil.";
exit;
}


PHP 7 üzerinde farklı doğrulama seçenekleri var fakat PHP 5 ve üzerinde çalışacak daha sağlam bir doğrulama fikriniz var mı?


Sorun çözüldü arkadaşlar, aslında dosya hiç bir şekilde kontrolü geçemiyordu yukarıdakilerden fakat benim kontrol sıralamasında yaptığım bir hata nedeniyle ve yukarıdaki kontrolün sıkıştırılmış dosyalara farklı hata tepkisi vermesinden kaynaklıydı.