- Home
- Categorie
- Coding e Sistemistica
- PHP
- caricamento multiplo
-
caricamento multiplo
Ciao ragazzi, ho questo problema... ho un form per il caricamento multiplo in ajax con name="file[]" però ora non saprei come trattarli quando li ricevo... ho provato con un foreach in questo modo:
foreach ($_FILES['foto'] as $file )
e in quest'altro
foreach ($_FILES['foto'] as $file => $valore)
sia un che l'altro da valore array
vi posto il codice completo
[PHP]
if($_REQUEST[invio])
{
require_once "SmartImage.class.php";
foreach ($_FILES['foto'] as $file => $valore)
{
if($file["error"] == 0)
{
$img = new SmartImage($file["tmp_name"]);
$img->getSize("30%");
$fn = $file;
$img->saveImage("utenti/".$user->get_property('NICK')."/".$_FILES['foto']['name']);
}else { echo "Errore"; } } }
[/PHP]
Grazie a tutti
-
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