senti, io con IIS uso questo codice:
Codice PHP:
if(trim($_FILES["upfile"]["name"]) != "")
{
// Eventuale nuovo nome da dare al file uploadato
$new_name "";
// Se $new_name è vuota, il nome sarà lo stesso del file uploadato
$file_name = ($new_name) ? $new_name $_FILES["upfile"]["name"];
$allowed_types = array("image/gif","image/x-png","image/pjpeg","image/jpeg");
if(!
in_array($_FILES["upfile"]["type"],$allowed_types)) {
   echo 
"Tipo file non corretto. Non è stato caricato nessun file.";
   
$file_name 'vuoto'; }
else {
  
move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name");
   }
}
else { 
$file_name 'vuoto'; }