Upload Immagini
In questo articolo cercherò di illustrare un semplicissimo script per l'uploaddelle 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">Nell'esempio quì sopra le cose più importanti da segnalare sono:
<input type="file" name="photo" />
<input type="submit" value="Invia" />
</form>
- 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
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"

grazie ancora