mi stavo kiedendo: come fare x caricare + immagini, in un modulo, e salvare i rispettivi percorsi su un db?
finkè si tratta di un file tutto mi torna, ma se ne voglio caricare 2 o 3 di fotografie? :master:
mi stavo kiedendo: come fare x caricare + immagini, in un modulo, e salvare i rispettivi percorsi su un db?
finkè si tratta di un file tutto mi torna, ma se ne voglio caricare 2 o 3 di fotografie? :master:
Non so se è ho capito bene,comunque
<input type="file" name="foto[]" value="">
e per prendere i valori fai:
for($i=0; $i<count($_FILES['foto']); $i++)
$path = "folder/".$_FILES['foto']['name'][$i];
Spero solo di aver capito bene...
Ciao
+ o -, mi sono espresso male io nel postarte. intendevo dire i percorsi dei file una volta ke li ho spediti al server. non in locale. :master:Originariamente inviato da ken84
Non so se è ho capito bene,comunque
<input type="file" name="foto[]" value="">
e per prendere i valori fai:
for($i=0; $i<count($_FILES['foto']); $i++)
$path = "folder/".$_FILES['foto']['name'][$i];
Spero solo di aver capito bene...
Ciao
cmq mi sei già stato di aiuto..tnx![]()
Scusa, allora ho capito male io, anche se, magari data l'ora, non mi è molto chiaro cosa tu voglia fare...
Se tu fai l'upload di un'immagine e sai che questa dovra andare in "tua/cartella", quando carichi nel DB basta che fai
$path = "tua/cartella/immagine.jpg";
Ma forse ho capito nuovamente male io...se è così chiedo scusa![]()
scusa te..è l'ora ke mi rende + scemo del solito. è 1 cosa semplice..a dirsi se si è svegli![]()
ho il modulo con vari campi input text e 3 campi file, dedicati a 3 immagini. alcuni input text sono obbligatori mentre i campi file sono facoltativi. tutti i dati vanno su un db e i file caricati vanno nella loro cartella.
prima xò faccio il controllo dei campi.x quelli di testo no problem, x quelli di file faccio così
adesso, premesso ke nn so se sia perfettamente corretto questo modo, dovrei copiare i file sul server. x un file solo facciocodice:for($i=0; $i<=count($_FILES["foto"]==!""); $i++) { $estensioniconsentite = array("image/pjpeg","image/gif","image/x-png","image/pjjpg","image/jpeg","image/jpg","image/bmp"); if($_FILES["foto"][$i]==!"") { if(!in_array($_FILES["foto"][$i]["type"],$estensioniconsentite)) // errore file non consentito { echo"<tr><td>Il file non è di un tipo consentito, sono ammessi solo file di tipo .gif, .jpg, .png o .bmp. [/b]</td></tr>"; } } }
ma x 3? o 2...in base ai campi riempiti?codice:is_uploaded_file($_FILES["foto"]["name"]); move_uploaded_file($_FILES["foto"]["name"], "$percorso_foto/fullsize/$_FILES["foto"]["name"]");![]()
poi ho il problema di prendere ciascun percorso e passarlo come valore da inserire nel db...:master:
![]()
prova così...
CiaoCodice PHP:
for($i=0; $i < count($_FILES['foto']); $i++)
{
$pathFotoDB = $percorso_foto."/fullsize/".$_FILES['foto']['name'][$i];
move_uploaded_file($_FILES['foto']['tmp_name'][$i], $pathFotoDB);
//Qui fai l'inserimento del path nel DB
}
prova così:
quando costruisci l'input type file metti per ognuno
<input type="file" name="upfile[]">
poi quando ricevi i dati:
foreach($_FILES['upfile'] as $upfile) {
foreach($upfile as key => $data) {
eval("\$$key = \"$data\";");
}
//inserisci nel db
foreach($upfile as key => $data) {
eval("unset(\$$key);");
}
}
al posto di //inserisci nel db metti la procedura per inserire nel db, per richiamare il nome del file temporaneo fai $tmp_name, per il nome del file vero e proprio $name per gli errori $error, per il tipo $type e per la dimensione $size.
Queste variabili non sodo disponibili al di fuori del foreach.
![]()
mi son perso sul 1° foreach...
cosa farebbe x ogni file caricato..a parte salvare nel db?![]()
almeno la parte html ti è chiara? bene allora spiego:
foreach($_FILES['upfile'] as $upfile) {
//per ogni file uppato
foreach($upfile as key => $data) {
//un po' complicato da spiegare..questo setta le variabili $error, $tmp_name ecc...
eval("\$$key = \"$data\";");
}
//inserisci nel db non so come non me ne intendo
//uppiamo:
move_uploaded_file($tmp_name, "upfile/".$name) or
die("file non uppato");
echo "file uppato";
foreach($upfile as key => $data) {
//distruggiamo le variabili settate $tmp_name, $name, $error, $type, $size
eval("unset(\$$key);");
}
}//chiusura foreach
allora per richiamare il percorso di dove è stato uppato il file facciamo:
$percorsofile = "upfile/".$name;
e poi quando facciamo l'insert richiamiamo il percorso del file con $percorsofile.
![]()