Visualizzazione dei risultati da 1 a 10 su 10

Discussione: upload multipli

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    32

    upload multipli

    Ciao a tutti,
    sto impazzendo cercando di fare un form di upload di immagini multiple. Vi posto il codice . Vorrei passare tramite il campo hidden un array che contiene le precedenti immagini uploadate ma nn ci riesco :


    <?php
    if ( isset($_POST['array_im']) ){
    $image = $_POST['array_im[]'];
    $i = $_POST['indice'];
    $image[$i] = $_FILES['immagine_ins']['name'];
    $i++;
    $s = sizeof($image);
    if (is_uploaded_file($_FILES['immagine_ins']['tmp_name'])){
    copy ($_FILES['immagine_ins']['tmp_name'],"./upload/".$_FILES['immagine_ins']['name']);
    }
    for ($j = 0; $j < $s;$j++){
    echo 'Immagine numero : '.($j+1).'</br>';
    echo $image[$j].'</br>';
    }
    }else{
    $i = 0;
    $image = array(0 => '0');
    }
    ?>
    <form name='form_immagini' method ='POST' action = '<?=$PHP_SELF?>' enctype= 'multipart/form-data'>
    <input type= 'hidden' name= 'array_im[]' value= '<?=$image?>' />
    <input type= 'hidden' name= 'indice' value= '<?=$i?>' />


    Inserisci una immagine&nbsp:&nbsp</p>
    <input name= 'immagine_ins' type= 'file' />
    </br>
    <input type='submit' name='upload' value="Clicca per inserire l'immagine" />
    </form>



    se faccio echo $_POST['array_im'][0]; mi stampa Array ma non c'è modo x vedere che c'è in quell'array.boh....

  2. #2
    per visualizzare la correttezza dei dati inviati con GET,POST o semplicemente un array usa print_r($_POST) o nel tuo caso:

    print_r($_FILES['immagine_ins'])

    questo ti darà tutte le proprietà array settate per il file specifico.
    CORROBORANTE
    GLEEEEEERRB!

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    32
    Grazie x avermi risposto ma il mio problema nn è questo. Il form che ho fatto richiama se stesso e ad ogni chiamata 'dovrebbe' memorizzare l'immagine selezionata in un array ('array_im[]') .
    Quindi array_im[] alla fine mi contiene tutte le immagini di cui ho fatto l'upload .
    Il fatto è che effettivamente memorizza l'immagine nell'array $image ma al momento in cui voglio inserire un'altra immagine e ripasso allo script tramite hidden l ''array_im[]' valorizzato con l'array $image aggiornato con l'immagine corrente, se faccio

    print_r($_POST['array_im'])

    mi stampa Array :

    ( [0] => Array )

    e non i nomi delle immagini uploadate fino a quel momento.

  4. #4
    scusa, ma fagliele uloadare tutte insieme...

    chiami i campi file con immagine_ins[1], immagine_ins[2], ecc e poi gli fai fare l'upload di tutti quelli settati (controlli con un isset). Ti consiglio poi di usare la classe per l'upload che c'è in questa pillolina, è perfetta per quello che vuoi fare tu...

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    32
    Si lo so ma cosi non posso uploadare un numero arbitrario di immafini.Se metto 8 campi file con immagine_ins[] il giorno che devo inserire 9 o più immagini non posso farlo.Per questo avevo pensato ad un array che mi passavo valorizzato con i nomi dei files delle immagini inserite fino a quel momento.Cavolo non dev'essere difficile!!!devo passare un array e aggiornarlo ogni volta.Secondo me nn sono lontano dalla soluzione ma ... mi sfugge qlk.Per questo ho postato il codice.
    Per le librerie per l'upload ... grazie per il consiglio le guarderò.

  6. #6
    ok, ma se c'è un array dentro un altra scava:

    print_r($_POST['array_im'][0])

    se c'è un altra array metti l'altro valore, e così via...
    CORROBORANTE
    GLEEEEEERRB!

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    32
    Fatto ho scavato e sono arrivato ad una conclusione.Dentro ad $_POST['array_im'][0] c'è la parola Array e non l'array.Infatti se faccio

    print_r($_POST['array_im'][0][0])

    mi da A

    print_r($_POST['array_im'][0][0])

    mi da r
    e così via fino a formare la parola Array.
    Quindi?!?!??!??!?
    Sbaglio nel passaggio dell'array $image perchè non gli passa l'array effettivo ma la parola Array.Ma da dove esce la parola Array?!?!?! come faccio a passare un array tramite campo hidden in un form?!??!

  8. #8
    Ma cavolo!!!

    Non puoi passare un array da un form come attribuzione, PHP stampa in ascii la parola ARRAY e fine..

    Devi scompilare l'array in elementi e passarli separati da una "," o un ";" poi da php riprendi la stringa array e la esplodi

    $array = explode(",",$_POST['array']);

    oppure se usi il ;

    $array = explode(";",$_POST['array']);

    ma più semplicemente, se mandi tutti i file e poi analizzi quanti file esistano all'interno di $_FILES ?
    Non trovi la cosa più igenica?
    CORROBORANTE
    GLEEEEEERRB!

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    32
    geniale...era questo che volevo sentirmi dire!era questo il passaggio a cui nn avevo pensato!
    grazie Achilleterzo proverò.

  10. #10
    Originariamente inviato da PedroPad
    Si lo so ma cosi non posso uploadare un numero arbitrario di immafini.Se metto 8 campi file con immagine_ins[] il giorno che devo inserire 9 o più immagini non posso farlo.Per questo avevo pensato ad un array che mi passavo valorizzato con i nomi dei files delle immagini inserite fino a quel momento.Cavolo non dev'essere difficile!!!devo passare un array e aggiornarlo ogni volta.Secondo me nn sono lontano dalla soluzione ma ... mi sfugge qlk.Per questo ho postato il codice.
    Per le librerie per l'upload ... grazie per il consiglio le guarderò.
    Puoi anche far creare un numero infinito di campi usando il javascript, prova a chiedere da quelle parti...

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.