Molte persone mi hanno chiesto come poter fare un upload multiplo di immagini o files tramite un form in html
Se siete in questa pagina in genere il nostro form ha una struttura del genere:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="POST"> <input name="file" type="file" /> <input type="submit" value="carica" /></form>
per poi richiamare il file caricato semplicemente con:
if(isset($_FILES['file'])){ $nome = $_FILES['file']['name']; ... .. . }
Ma se la vostra esigenza è fare upload multipli basterà aggiungere all’input type=”file” 2 paroline.. file[] e multiple
per poi richiamare il file caricato semplicemente con:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="POST"><input multiple="multiple" name="file[]" type="file" /> <input type="submit" value="carica" /></form>
e richiamare quindi i file caricati , tramite array invece della solita variabile
quindi sinteticamente con:
if(isset($_FILES['file'])){ $filestotali = count($_FILES['file']['name']); for($i=0;$i<=$filestotali-1;$i++){ $nome = $_FILES['file']['name']["$i"]; .. . } }
alla prossima guida!
Questa è un’ottima soluzione, però solo se i file vengono selezionati in gruppo, quindi devono trovarsi nella stessa directory. Esiste un sistema più generalizzato, che mi consenta di fare upload di file anche se selezionati uno alla volta in cartelle diverse, pur usando sempre un solo campo di input, o simulandolo? In ogni caso, evitando di dover inserire più campi input file, cosa che tra l’altro ha il limite di dover stabilire a priori il numero di file da poter trasferire?
grazie
Ciao Paul generalmente il sistema di upload multipli funziona sempre per file localizzati nella stessa cartella/directory. C’è invece la possibilità di caricare i file in cartelle diverse in base al loro peso / estenzione