lunedì 28 Settembre 2020

Download in corso

Softwareone.it

11-01-2019

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>

Pubblicità

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

Pubblicità

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

I commenti sono chiusi.

Pubblicità