Upload Immagini

In questo articolo cercherò di illustrare un semplicissimo script per l'upload
delle immagini sfruttando PHP.
Per prima cosa vedremo come creare il form html per l'upload

1) Strutturiamo il form
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="photo" />
<input type="submit" value="Invia" />
</form>
Nell'esempio quì sopra le cose più importanti da segnalare sono:
  • la presenza dell'enctype multipart/form-data, senza il quale non si avrebbe l'invio del file

  • upload.php che è il file che riceverà ed elaborerà i dati

  • POST che è il metodo HTTP scelto per l'invio dei file


2) Creiamo il file upload.php che riceverà i dati
<?php
// Verifichiamo che il file sia stato inviato
if($_FILES['photo']['error'] != 0)
die("ERRORE: Upload non riuscito");

// Valorizzo alcune variabili per comodità
$tmp = $_FILES['photo']['tmp_name'];
$name = $_FILES['photo']['name'];
$type = $_FILES['photo']['type'];

// Estrapolo l'estensione del file
$ext = strtolower(strrchr($name, '.'));

// Effettuiamo dei controlli sul tipo di file
$allowed = array('.jpg' => 'image/jpeg', '.gif' => 'image/gif');

if(!in_array($ext, array_keys($allowed)) || $allowed[$ext] != $type)
die("ERRORE: File non valido");

// Dico a PHP dove salvare il file (aggiungo un TIMESTAMP come prefisso per evitare sovrascrizioni per file con lo stesso nome)
$filename = "upload/" . time() . "_" . $name;

// Copio il file nella cartella di destinazione
if(move_uploaded_file($tmp, $filename))
{
// Upload eseguito con successo
// Inserire quì un messaggio di conferma o
// il codice per effettuare il resize
echo "Upload eseguito con successo";
}
else
{
die("ERRORE: Impossibile spostare il file");
}
?>

Commenti

1. Andrea (04.06.09 21:33)
Grazie della segnalazione carlo, puoi cortesemente dirmi con che sistema ti succede ciò? Sistema operativo e browser.
grazie ancora
2. carlo (04.06.09 17:46)
Segnalo un errore nella visualizzazione di questa pagina. il testo si presenta tutto a sinistra sovrapponendosi allo sfondo nero del body rendendo difficile la lettura del tutorial.
3. Andrea (02.10.08 22:37)
Grazie della segnalazione, ho modificato l'errore, ora non dovrebbero esserci problemi ;)
4. giancarlo (02.10.08 11:04)
anche a me da "Errore: File non valido"
5. Giuseppe (06.09.08 17:06)
Ho provato questo script in localhost ma non funziona, nonostante specifico un'immagine gif o jpg mi dà "Errore: File non Valido"
Nome:
Commento:

Non si tratta di Spam / This is not Spam