Tutorial PHP

Home | Tutorial PHP | Art. # 23

Upload di file in PHP

Corso online MySQL
Corso online per imparare ad utilizzare il potente database MySQL. Assistenza del docente ed attestato di partecipazione finale.

In PHP è piuttosto semplice eseguire upload di file, controllarne l'andamento ed impostare controlli e criteri di restrizione. Si utilizza per prima cosa la funzione predefinita move_uploaded_file, oltre alla variabile $_FILES che mette a disposizione una serie di chiavi per leggere o scrivere valori.

Vediamo innanzitutto un esempio completo, prima di commentarlo:

<html>
<head>
<title>Upload di file in PHP</title>
</head>
<body>
<h1>Upload</h1>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="fdc" size="50">
<input type="submit" name="upload" value="Upload">
</form>
<?
    if ($_POST["upload"] != "")
    {
        $percorso = "upload/";
        $fdc_temp = $_FILES["fdc"]["tmp_name"];
        $fdc_name = $_FILES["fdc"]["name"];
        if (move_uploaded_file($fdc_temp, $percorso . $fdc_name))
        {
            echo "Upoload eseguito con successo";
        }
        else
        {
            echo "Si è verificato un errore in fase di upoload";
        }
    }
?>
</body>
</html>

Per prima cosa guardiamo il tag <form> che, oltre agli attributi classici method ed action, contiene l'attributo enctype="multipart/form-data" che, a prescindere da PHP, è il valore che enctype deve assumere al fine di utilizzare l'input di tipo file.

Passiamo allo script PHP.

Verifichiamo prima di tutto che il modulo sia stato inviato, stabiliamo che tutti i file verranno uploadati nella cartella upload e recuperiamo il nome del file che viene passato attraverso la casella di input.

A questo lanciamo la funzione move_uploaded_file, filtrandola con un controllo condizionale, in modo da effettuare la volo la gestione di eventuali eccezioni.

Concludiamo parlando delle principali chiavi della variabile $_FILES: size specifica, in byte, le dimensioni del file e type specifca il MIME-Type del file da uploadare.

E' possibile dunque impostare dei controlli per verificare, ad esempio, che vengano caricati file solo di un certo tipo o che non superino determinate dimensioni, impostando controlli del genere:

if ($_FILES["fdc"]["size"] != "10000")
{
    echo "Il file scelto supera i 10000 bytes";
}

oppure:

if ($_FILES["fdc"]["type"] != "image/gif")
{
    echo "E' possibile caricare solo file GIF";
}

Segue un elenco dei principali MIME-Type:

text/plain
text/html
text/css
text/javascript
text/vbscript
text/xml
text/xsl
image/png
image/gif
image/jpeg
image/bmp
video/mpeg
audio/basic
application/msword
application/vnd.ms-excel
application/pdf
application/zip
application/x-zip-compressed
application/x-shockwave-flash
 

Scritto in data 12/01/2008 e modificato in data 28/04/2008

Segnalalo ad un Amico | Aggiungilo ai Preferiti


© 2008 Appunti PHP - A cura di Luca Ruggiero - Partita IVA 05564851219 - Pubblicità | Contatti