Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [php] upload di + immagini

    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:

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    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

  3. #3
    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
    + 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:
    cmq mi sei già stato di aiuto..tnx

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    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

  5. #5
    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ì
    codice:
    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>";
      			}
      		}
    	}
    adesso, premesso ke nn so se sia perfettamente corretto questo modo, dovrei copiare i file sul server. x un file solo faccio
    codice:
    is_uploaded_file($_FILES["foto"]["name"]);
    move_uploaded_file($_FILES["foto"]["name"], "$percorso_foto/fullsize/$_FILES["foto"]["name"]");
    ma x 3? o 2...in base ai campi riempiti?
    poi ho il problema di prendere ciascun percorso e passarlo come valore da inserire nel db... :master:

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    prova così...
    Codice 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

    Ciao

  7. #7
    ..non mi riesce di passare il nome del file!

  8. #8
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    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.


  9. #9
    mi son perso sul 1° foreach...
    cosa farebbe x ogni file caricato..a parte salvare nel db?

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    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.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.