Form in PHP per Unpload di Immagini
La prima cosa da fare per permettere l’upload di un file è creare un form con un input type file e un altro input di type submit per permettere l’invio del file.
<form action="upload.php" method="post" enctype="multipart/form-data"> <!-- Campo file di nome "image" --> <input name="image" type="file" size="40" /> <br /><br /> <!-- Pulsante --> <input name="upload" type="submit" value="Carica immagine" /> </form>
Il form punta alla pagina upload.php
pagina dove andremmo ad inserire il codice php che ci permette di impostare una dimensione massima del file; in questo caso il file non superi i 18 KB; controllo che le dimensioni (in pixel) non superino 160×180, controllo che il file sia in uno dei formati GIF, JPG o PNG, verifico che non esista già un file con lo stesso nome e in fine sposto il file nella cartella da me desiderata.
Per modificare la dimensione massima è necessario che il file php.ini sia configurato in modo correttamente con le dimensioni dei file da caricare, se nella nostra applicazione è possibile effettuare l’upload di file molto grossi, è necessario modificare la variabile di configurazione max_upload_size affinché il suo valore sia adatto alla nostra situazione.
Upload.php
<?php do { if (is_uploaded_file($_FILES['image']['tmp_name'])) { // Controllo che il file non superi i 18 KB if ($_FILES['image']['size'] > 18432) { $msg = "<p>Il file non deve superare i 18 KB!!</p>"; break; } // Ottengo le informazioni sull'immagine list($width, $height, $type, $attr) = getimagesize($_FILES['image']['tmp_name']); // Controllo che le dimensioni (in pixel) non superino 160x180 if (($width > 160) || ($height > 180)) { $msg = "<p>Dimensioni non corrette in pixel non superino 160x180!!</p>"; break; } // Controllo che il file sia in uno dei formati GIF, JPG o PNG if (($type!=1) && ($type!=2) && ($type!=3)) { $msg = "<p>Formato non corretto!!</p>"; break; } // Verifico che sul sul server non esista già un file con lo stesso nome // In alternativa potrei dare io un nome che sia funzione della data e dell'ora if (file_exists('../upload_img/'.$_FILES['image']['name'])) { $msg = "<p>File già esistente sul server. Rinominarlo e riprovare.</p>"; break; } // Sposto il file nella cartella da me desiderata if (!move_uploaded_file($_FILES['image']['tmp_name'], '../upload_img/'.$_FILES['image']['name'])) { $msg = "<p>Errore nel caricamento dell'immagine!!</p>"; break; } else echo"Immagine Caricata"; } } while (false); echo @$msg; ?>
Da notare la radice della cartella upload_img, la cartella in cui andranno a finire le immagini.
Stampiamo a video le immagini caricate.
Con getcwd() che (restituisce la directory di lavoro corrente) impostiamo la directory dove si trovano le immagini
Con la funzione implode() che (restituisce una stringa dagli elementi di un array) stampiamo a video il contenuto della cartella che contiene i file.
<?php // indico il percorso della cartella $d = dir(getcwd() . "../../upload_img"); $files = array(); //ciclo il contenuto while ($entry = $d->read()) { if ($entry != "." && $entry != "..") { $files[] = "<img src='../../upload_img/" . $entry . "' alt='img'/> <br/>"; // Aggiungi una stringa all'array dichiarato sopra } } $d->close(); ?>
<?php echo implode("", $files); ?>
Inviare Dati A MySql
https://www.php.net/manual/en/features.file-upload.post-method.php