Se nel tuo script (copiato spudoratamente in una guida molto datata metti qualche controllo in più puoi conoscere l'errore e verificarli...
lo script l'ho modificato alla buona ma così puoi controllare meglio ciò che succede...
se dovessi fare una previsione scommetterei che la cartella 'upload' non esiste
Codice PHP:
<?php


// QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
// DI PHP PRECEDENTI ALLA 4.1.0
if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
if(!isset(
$_SERVER)) $_SERVER $HTTP_SERVER_VARS;

/********************* VARIABILI DA SETTARE ********************/
// Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
$upload_dir $_SERVER["DOCUMENT_ROOT"] . "/upload";
if(!
is_dir($upload_dir))
   {
   die(
'ecco perchè non funzione la cartella '.$upload_dir.' non esiste mio caro...');
   }
echo 
$_SERVER["DOCUMENT_ROOT"] . "
"
;

// 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"];

if(
trim($_FILES["upfile"]["name"]) == "") {

die(
"Non hai indicato il file da uploadare !");

}

if(@
is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
    
    
$result = @move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name"); 
if(!
$result){ die ('si è verificato errore numero '.$_FILES["upfile"]["error"]); }
    echo 
"L'upload del file " basename($_FILES["upfile"]["name"]) . " è avvenuto correttamente";

} else {

    echo 
"Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.
"
;
    echo 
"Problemi nell'upload del file " $_FILES["upfile"]["name"];
    echo 
"
"
;

}
?>