Upload multiplo di file con PHP

 

upload_php

Come esempio possiamo considerare tra tanti, un modulo di registrazione per dare all’ utente che si sta iscrivendo, la possibilità di inserire un’ immagine nel suo profilo, oppure creare una galleria fotografica ed altro ancora.

In questo articolo vediamo come gestire l’upload multiplo dei file in PHP attraverso un  modulo HTML.

Il form

Iniziamo con la parte HTML creando un semplice form contenente un campo per la selezione dei file e un bottone per inviare i dati al server:

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file[]" multiple />
<br />
<input name="invia" type="submit" value="Carica" />
</form>

Nel tag form è presente l’attributo enctype per specificare al browser il tipo di codifica per inviare i dati al server.

Il valore multiple applicato al campo input indica che possono essere selezionati più file e che specificando l’attributo name con un valore  seguito dalle parentesi quadre, questi saranno contenuti in un array nel codice lato server che gestisce i file in caricamento.

Upload.php

Adesso vediamo come gestire il caricamento dei file lato server attraverso PHP:

<?php
if(isset($_POST['invia']))
{
//percorso dei file caricati
$directory="upload/";
$a=0;

foreach ($_FILES['file']['name'] as $nameFile) {

if(is_uploaded_file($_FILES['file']['tmp_name'][$a]))
{
move_uploaded_file($_FILES['file']['tmp_name'][$a], $directory.$_FILES['file']['name'][$a]);
}
//incremento l'indice
$a++;
}
}
?>

Dando un’occhiata al codice per prima cosa abbiamo definito il percorso della directory che dovrà contenere i file caricati:

$directory="upload/";

Poi scorriamo l’array globale $_FILES  con il ciclo foreach per posizionare i file caricati (la funzione move_upload_file() appunto sposta i file dalla locazione temporanea alla cartella cartella “upload”) nel percorso specificato..

Lascia un commento