mime typlerı kontrol edebilirsiniz. Öncelikle mime type listesini şurdan Webmaster Toolkit :: listing of mime types bulabilirsiniz. Ben 2 mime typı örnek olarak yapayım. Siz hangilerine izin verecekseniz seçin.

$dosya_type=$_FILES['dosya']['type'];

if ( $dosya_type != "text/html" || $dosya_type != "application/x-compressed" )
{
echo 'Sadece .html ve .zip uzantılarını kabul ediyoruz';
}
Türkçe karakter kontolü yerine dosya ismini toptan değiştirirseniz daha yararınıza olur. Aynı dosya adından başka birisi yüklerse, dosyayı üstüne yzar. Onuda şu şekil yaparsınız

$dosya_adi = $_FILES['dosya']['name'];
$bol = explode(".",$dosya_adi);
$son_noktayi_al = count($bol)-1;
$uzanti = $bol[$son_noktayi_al];
$yenisimsalla = md5(time());
$yen_isim = $yenisimsalla.'.'.$uzanti;