Ho preso lo script dell'articolo di questo sito "Upload con Php" di Giancarlo Moscitta ed lo modificato un po'.
In pratica ho una pagina con form che mi permette di riempire i campi di un record di database, nella stessa pagina c'è il link per aprire un popup in cui c'è il form per l'upload del file.
Il codice riportato è quello della pagina di conferma dell'avvenuto upload.
Codice 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"]."/altervista/uploaddir";
// ==========================================================
chmod($_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir",777);
// ==========================================================
// print ($_SERVER["DOCUMENT_ROOT"]."/altervista/uploaddir");
if(trim($_FILES["upfile"]["name"])=="") {die("Non hai indicato il file da uploadare !");}
else { // Il file è stato indicato
if(is_uploaded_file($_FILES["upfile"]["tmp_name"])) // E' stato effettuato l'upload
{if ($_FILES["upfile"]["size"]>2048) // E' troppo grande
{print("L\'immagine non può pesare più di 2 mb");}
else{move_uploaded_file($_FILES["upfile"]["tmp_name"], "$upload_dir/$file_name") or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload.");
echo "L'upload del file " . $_FILES["upfile"]["name"] . " è avvenuto correttamente";}
}
else { die("Problemi nell'upload del file ".$_FILES["upfile"]["name"]).$_FILES['upfile']['error'];} // Non è stato effettuato l'upload
}
?>
Mi rendo conto che non è il massimo dell'eleganzacorrettezza usare tutti quei "IF-else" nidificati, ma non riesco a capire perchè quando vado ad eseguire lo script ricevo sempre il messaggio "Problemi nell'upload del file".
Ci sto diventando scemo.
Mi potete aiutare, sono agli inizi. Grazie !