//tanımladığım fonksiyon verilen dosyanın uzantısını buluyor
function uzantiBul($isim) { 
    $dizi = explode('.',$isim); 
    $eleman = count($dizi) -1; 
    $uzanti = $dizi["$eleman"]; 
    return $uzanti; 
} 
//fonksiyonu kullanarak upload diye alınan dosyanın uzantısı uzantimiz degiskenine atanıyor
$uzantimiz = uzantiBul($_FILES['upload']['name']);
uzantimiz değişkenindeki uzantıya göre bir if veya switch döngüsü kurabilirsin, burdan engellenenleri belirtebilirsin, sana kalmış gerisi. Ama kodu denemedim, umarım çalışıyordur. Aklıma şimdilik böyle birşey geldi, daha iyi çalışan ve uzantıdan yararlanmadan dosya tipini alan birşey de vardır sanırım