Ciao,
hai provato a fare un
[PHP]
print_r($_FILES);
[/PHP]
per vedere come i dati arrivano al php?
Per i campi input di tipo non-file, assegnando nome=dato[], il php li riceve così:
[PHP]
$_POST['dato'][0];
$_POST['dato'][1];
...
$_POST['dato'];
[/PHP]
Per il file il funzionamento è leggermente diverso e rende un pò più complesso gestire i dati tramite un foreach.
I file vengono ricevuti in questo modo:
[PHP]
$_FILES['foto']['name'][1];
$_FILES['foto']['name'][2];
...
$_FILES['foto']['name'];
$_FILES['foto']['type'][1];
$_FILES['foto']['type'][2];
...
$_FILES['foto']['type'];
$_FILES['foto']['tmp_name'][1];
$_FILES['foto']['tmp_name'][2];
...
$_FILES['foto']['tmp_name'];
$_FILES['foto']['error'][1];
$_FILES['foto']['error'][2];
...
$_FILES['foto']['error'];
$_FILES['foto'][1];
$_FILES['foto'][2];
...
$_FILES['foto'];
[/PHP]
La struttura dell'array che, con print_r potrai verificare, è:
Array
(
[foto] => Array
(
[name] => Array
(
[1] => image.gif
[2] => image.jpg
)
[type] => Array
(
[1] => image/gif
[2] => image/pjpeg
)
[tmp_name] => Array
(
[1] => C:\tmp\php8DC1.tmp
[2] => C:\tmp\php8DC2.tmp
)
[error] => Array
(
[1] => 0
[2] => 0
)
=> Array
(
[1] => 172694
[2] => 25793
)
)
)
Volendo utilizzare il foreach poi recuperare tutti i dati necessari ad esempio in questo modo:
[PHP]
foreach ($_FILES['foto']['tmp_name'] as $file => $valore)
{
$tmp_name=$valore;
$name=$_FILES['foto']['name'][$file];
$type=$_FILES['foto']['type'][$file];
$error=$_FILES['foto']['error'][$file];
$size=$_FILES['foto'][$file];
}
[/PHP]
Alessandro