Visualizzazione dei risultati da 1 a 5 su 5

Discussione: upload multiplo

  1. #1

    upload multiplo

    Buongiorno
    Ho fatto questo scritp, upload multiplo e inserimento nel db dei dati, mi inserisce senza problemi i dati nel db, ma il problema è che carica solo un immagine , mentre le altre no, come mai? anche se lo script mi dice perfettamente caricate

    Codice PHP:
    <?
    include('ammbar.php');
    include(
    './config.php');
    ?>

    <?
    if(isset($_GET['action']) && $_GET['action'] == "upload"){
    $uploaddir 'img/';

    $uploadfile $uploaddir $_FILES['userfile']['name'];
    if (
    move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Prima Immagine inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 1 immagine
    "
    ;
    }

    $uploadfile2 $uploaddir $_FILES['userfile2']['name'];
    if (
    move_uploaded_file($_FILES['userfile2']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile2']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 2 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 2 immagine
    "
    ;
    }

    $uploadfile3 $uploaddir $_FILES['userfile3']['name'];
    if (
    move_uploaded_file($_FILES['userfile3']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile3']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 3 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 3 immagine
    "
    ;
    }
    $uploadfile4 $uploaddir $_FILES['userfile4']['name'];
    if (
    move_uploaded_file($_FILES['userfile4']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile4']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 4 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 3 immagine
    "
    ;
    }
    $uploadfile5 $uploaddir $_FILES['userfile5']['name'];
    if (
    move_uploaded_file($_FILES['userfile5']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile5']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 5 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 3 immagine
    "
    ;
    }
    $uploadfile6 $uploaddir $_FILES['userfile6']['name'];
    if (
    move_uploaded_file($_FILES['userfile6']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile6']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 6 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 6 immagine
    "
    ;
    }
    $uploadfile7 $uploaddir $_FILES['userfile7']['name'];
    if (
    move_uploaded_file($_FILES['userfile7']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile7']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 7 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 7 immagine 
    "
    ;
    }
    $uploadfile8 $uploaddir $_FILES['userfile8']['name'];
    if (
    move_uploaded_file($_FILES['userfile8']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile8']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 8 inserita con successo
    "
    ;
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 8 immagine 
    "
    ;
    }
    $uploadfile9 $uploaddir $_FILES['userfile9']['name'];
    if (
    move_uploaded_file($_FILES['userfile9']['tmp_name'], $uploadfile)) {
    $img $_FILES['userfile9']['name'];
    $id_event=$_POST['id_event'];
    $sql "INSERT INTO `event_img` (`id_event` , `img`) VALUES ('$id_event' , '$img')";
     
    mysql_query($sql);
    print 
    "Immagine 9 inserita con successo";
    } else {
    print 
    "Siamo spiacenti, non è stato possibile caricare la 9 immagine";
    }
    }
    ?>

    <form action="content.php?page=12&action=upload" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000000">
    Percorso file 1<input name="userfile" type="file"> 


    Percorso file 2<input name="userfile2" type="file"> 


    Percorso file 3<input name="userfile3" type="file"> 


    Percorso file 4<input name="userfile4" type="file"> 


    Percorso file 5<input name="userfile5" type="file"> 


    Percorso file 6<input name="userfile6" type="file"> 


    Percorso file 7<input name="userfile7" type="file"> 


    Percorso file 8<input name="userfile8" type="file"> 


    Percorso file 9<input name="userfile9" type="file"> 


    <input type="hidden" value="<?=$_GET['id'];?>" name="id_event" />
    <input type="submit" value="inserisci">
    </form>

  2. #2
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    Il problema è nelle chiamate alla funzione move_upload_file; in tutti i casi usi la variabile $uploadfile anziché quelle con il numero relativo al file su cui operi.


    Ciau
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  3. #3
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053

    Re: upload multiplo

    Comunque in programmazione andrebbe evitato il codice ridondante, il rischio di errori aumenta di pari passo con i casi simili trattati. Inoltre con questo sistema venivano eseguite tante query quanti file venivano inseriti.

    Ti ho riscritto il codice in modo che settando il numero di upload desiderati lui eseguira lo stesso numero di controlli sui campi; se dovessi cambiarlo, non dovrai modificare l'algoritmo in php ma solo quella variabile.


    Codice PHP:
    // Quanti upload andranno eseguiti?
    $numeroUpload 8;

    // Algoritmo per l'upload dei file

    $sqlValues = array(); // inizializiamo l'array con i valori della query INSERT

    for ($i 0$i $numeroUpload$i++) {

        
    $uploadfile $uploaddir $_FILES['userfile'$i]['name'];
        if (
    move_uploaded_file($_FILES['userfile'$i]['tmp_name'], $uploadfile)) {
            
    $sqlValues[] = "('{$_POST['id_event']}' , '"$_FILES['userfile'$i]['name'] ."')";
            print 
    "Immagine numero $i inserita con successo
    "
    ;
        } else {
            print 
    "Siamo spiacenti, non è stato possibile caricare l'immagine numero $i
    "
    ;
        }

    // Fine ciclo for

    // Ora eseguiamo una sola query SQL con tutti i valori creati
    $sql 'INSERT INTO `event_img` (`id_event` , `img`) VALUES 'implode(', '$sqlValues);
    mysql_query($sql); 
    Un ulteriore modifica si potrebbe fare per generare automaticamente i campi HTML per l'upload basandosi sempre sulla variabile $numeroUpload.

    Ri-ciao

    PS: ho scritto il codice senza testarlo, spero sia immune da errori ma questi sono sempre in agguato quando si programma. Nel caso ve ne fossero, scrivi sempre qui
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  4. #4
    Dai grazie mille, provo a farlo come hai scritto tu che è perfetto e puliti, solo una cosa , i campi di input devo mettere lo stesso valore oppure come ho fatto nello script mio sopra vabbene? o meglio name del input deve avere nome diverso?

  5. #5
    funziona benissimo lo script, manca solo la cartella dove mettere le foto, l'ho aggiunta io qui, cosi se può servire a qualcuno

    Codice PHP:
    <?
    if(isset($_GET['action']) && $_GET['action'] == "upload"){
    // Quanti upload andranno eseguiti?
    $numeroUpload 9;

    // Algoritmo per l'upload dei file

    $sqlValues = array(); // inizializiamo l'array con i valori della query INSERT

    for ($i 0$i $numeroUpload$i++) {
    $uploaddir './img/'
        
    $uploadfile $uploaddir $_FILES['userfile'$i]['name'];
        if (
    move_uploaded_file($_FILES['userfile'$i]['tmp_name'], $uploadfile)) {
            
    $sqlValues[] = "('{$_POST['id_event']}' , '"$_FILES['userfile'$i]['name'] ."')";
            print 
    "Immagine numero $i inserita con successo
    "
    ;
        } else {
            print 
    "Siamo spiacenti, non è stato possibile caricare l'immagine numero $i
    "
    ;
        }

    // Fine ciclo for

    // Ora eseguiamo una sola query SQL con tutti i valori creati
    $sql 'INSERT INTO `event_img` (`id_event` , `img`) VALUES 'implode(', '$sqlValues);
    mysql_query($sql);
    }
    ?>

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.