Upload multiplo senza java e javascript 5


Oggi voglio proporvi come fare un upload multiplo di file in html+php. Ma non il solito upload multiplo con più campi input.
Usando solo html e php, sneza java e javascript

Infatti l’altro giorno ho scoperto un attributo di input: multiple=”multiple”.
Questo attributo permette di selezionare contemporaneamente più file, di conseguenza è necessario impostare l’attributo “name” come “file[]” in modo che lo script php, attivato dalla form, possa manipolare i file come un array.

Quindi il codice html per inviare più file sarà:

<form action="" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="file[]" />
<input type="submit" />
</form>

Mentre in php i file verranno visti come dei sub-array delle varie proprietà di $_FILES[‘file’]. Ad esempio se volessimo visualizzare il nome del secondo file inviato dovremmo fare $_FILES[‘file’][‘name’][1].
N.B. gli indici partono sempre da 0 in php

Infatti se proviamo a fare “print_r($_FILES[‘file’])” (dopo aver inviato due file), il risultato sarà:

Array
(
[name] => Array
(
[0] => Chrysanthemum.jpg
[1] => Desert.jpg
)

[type] => Array
(
[0] => image/jpeg
[1] => image/jpeg
)

[tmp_name] => Array
(
[0] => /tmp/php9m5Lzg
[1] => /tmp/php3Vqtya
)

[error] => Array
(
[0] => 0
[1] => 0
)

[size] => Array
(
[0] => 879394
[1] => 845941
)

)

Esempio completo

<?php
//sposto gli elementi in una directory chiamata file
if(isset($_FILES['file']))
    foreach($_FILES['file']['tmp_name'] as $key=>$value)
        @move_uploaded_file($value, dirname(__FILE__)."/file/".$_FILES['file']['name'][$key]);
?>
<html>
<head>
<title>upload</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" multiple="multiple" name="file[]" />
<input type="submit" />
</form>
</body>
</html>

CC BY-SA 4.0 Upload multiplo senza java e javascript by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Lascia un commento

5 commenti su “Upload multiplo senza java e javascript

  • Niko

    ciao, la tua guida spiega molto bene quello che sto cercando di fare, un singolo input per permettere l’upload multiplo, però ho dei problemi per quanto riguarda il foglio php a cui si rifà il form. E’ da giorni che ci provo ma ancora non è uscito nulla.
    Potresti darmi delle dritte? dirmi a grandi linee come si dovrebbe fare?

  • daniele

    Mi funziona tutto con Google Chrome ma con IE (io ho la versione 8) no.
    C’è qualche cosa da impostare?

  • cardi L'autore dell'articolo

    credo che sia un problema di incompatibilità di IE e che quindi non ci sia soluzione