PHP – Upload di più file o immagini contemporaneamente

Php - multi upload di file

L’invio e il recupero di più file da un form upload è piuttosto semplice. Basta seguire qualche accortezza e lavorare sugli array (1)

Qualche giorno fa mi è stato chiesto per email di realizzare un articolo sugli upload multipli, cioè uno script che sia in grado di fare l’upload di più file o immagini contemporaneamente. La richiesta è avvenuta dopo la lettura di un mio recente articolo che trattava le basi dell’upload di immagini.

Esistono in rete diversi sistemi per eseguire l’upload multiplo. I più efficienti si avvalgono di una struttura a classi e permettono opzioni di livello avanzato.
Per lo scopo di questo articolo, però, ci fermeremo ai primi passi: invio dei file e recupero di ognuno di essi.

Si richiede la lettura (che è molto semplice) dell’articolo linkato sopra, sulla quale fonderò le basi di questo tutorial.

Il form

La creazione del form è molto semplice. L’unica cosa da ricordarsi è che l’attributo “name” deve contenere un nome con le parentesi quadre e che sia presente l’attributo “multiple”.
Di fatto, quando cercherete i file sul computer, potrete selezionarne più di uno tenendo premuto il tasto ctrl della tastiera.

1
2
3
4
5
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file[]" multiple>
<br /><br />
<input name="invia" type="submit" value="Carica i file" />
</form>

Il recupero delle informazioni

Diamo un’occhiata al recupero delle informazioni. In seguito all’invio, i file saranno passati tramite l’array “$_FILES[‘file’][‘name’]”.
Nell’esempio i file saranno salvati nella cartella “upload_img”, la cui stringa è immagazzinata nella variabile $folder.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
$folder='upload_img/';

if(isset($_FILES['file']['name'])){

    $count=0;
    foreach ($_FILES['file']['name'] as $filename) {
        $destination=$folder;
        $origin=$_FILES['file']['tmp_name'][$count];
        $count++;
        $destination=$destination.basename($filename);
        move_uploaded_file($origin, $destination);
    }

}

Da notare la variabile $count, un intero che si incrementerà a ogni ciclo. Sarà questa variabile a stabilire di volta in volta quale file prendere tra quelli passati.

Copyright immagini

(1) http://www.talentsfromindia.com

Etichette
Etichette:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.