• User Attivo

    upload multiplo immagini

    Ciao ragazzi, ho un problema che non riesco proprio a :dhò: risolvere..
    Devo realizzare un form che permetta di fare l'upload di tante immagini in una pagina sola.
    Finchè l'upload riguarda una sola immagine non ci sono problemi, ma se tento di effettuare l'upload di più di una immagine, non mi riesce: quando inserisco la prima va bene ma quando provo ad inserire la seconda, mi cancella anche l'inserimento della prima.. Come posso fare?
    grazie per l'aiuto


  • User Attivo

    ciao...
    mi spiace di non saperti rispondere, ma ho il tuo stesso problema... solo che non sono neanche in grado di fare l'upload di una singola immagine! 😄

    mi posteresti il codice che usi, per favore?

    grazie... poi proviamo ad andare avanti insieme, se ti va! 🙂


  • User Attivo

    ho risolto così... non è probabilmente un metodo molto ortodosso, ma funziona.

    ho creato un array con i nomi dei campi type="file" che ho sul form:

    $filenames = array("fotoone", "fototwo", "fotothree", "fotofour", "fotofive", "fotosix");
    

    poi per ogni elemento di questo array chiamo le operazioni che eseguivo per salvarmi il file sul server con un semplice

    foreach($filenames as $file)
    

    a questo punto $_FILES[$file] punta al primo elemento dell'array, poi al secondo, ecc...

    spero di esserti stato utile! 🙂


  • User Attivo

    ciao, scusa per il ritardo. ti posto le pagine di codice che uso io, per un upload alla volta funge, ma se nella stessa pagina fai più di un upload vanno a sovrascrivere.. non ho capito perchè. Spero che ti siano utili. Per quanto riguarda il tuo codice se funziona è fantastico, se puoi mandarmi un po di codice posso vedere se è adattabile a quello che sto facendo grazie, a presto

    PAGINA DI INSERIMENTO:
    [php]
    <?
    include("config.inc.php");
    include("connect.php");
    if (isset($_GET['nome'])) {$nome=$_GET['nome'];} else {$nome="";}
    if (isset($_GET['descrizione'])) {$descrizione=$_GET['descrizione'];} else {$descrizione="";}
    if (isset($_GET['prezzo'])) {$prezzo=$_GET['prezzo'];} else {$prezzo="";}
    if (isset($_GET['urlfoto'])){$urlfoto=stripslashes($_GET['urlfoto']);} else {$urlfoto="no";}
    if (isset($_GET['larghezza'])) {$larghezza=$_GET['larghezza'];} else {$larghezza="";}
    if (isset($_GET['altezza'])) {$altezza=$_GET['altezza'];} else {$altezza="";}
    if (isset($_GET['ver'])) {$ver=$_GET['ver'];} else {$ver="0";}
    $ip=$_SERVER['REMOTE_ADDR'];
    ?>

    <input type="checkbox" name="nuovo">
         nuovo<br>
              <input type="checkbox" name="usato">
           usato<br> <br /> 
    
            <td><h5 align="left" class="Stile2">Nome articolo:
     <input name="nome" type="text" class="tab_notizia" id="nome" onKeyUp="controllo()" value="<? echo $nome; ?>" size="45"> 
            </h5>
              <p align="left" class="Stile2">
                <input name="urlfoto" type="hidden" id="urlfoto" value="<? echo $urlfoto; ?>">
                <input name="larghezza" type="hidden" id="larghezza" value="<? echo $larghezza; ?>">
                <input name="altezza" type="hidden" id="altezza" value="<? echo $altezza; ?>">
    

    </p>
    <div align="center">
    <h5 align="left"><span class="Stile2">Descrizione articolo:</span></h5>
    </div>
    <p align="center">
    <textarea name="descrizione" cols="50" rows="15" class="tab_notizia" id="descrizione" onKeyUp="controllo()"><? echo $descrizione;?></textarea>
    </p>
    <p align="center">
    <input type="button" name="button22" value="Corsivo" class="button" onClick="stile('corsivo')">
    <input type="button" name="button2" value="Grassetto" class="button" onClick="stile('grassetto')">
    <input type="button" name="button222" value="Sottolineato" class="button" onClick="stile('sottolineato')">
    </p>
    <table width="100%" border="0" cellspacing="1" cellpadding="1">
    <tr>
    <td width="51%" align="left" valign="top"><h5><span class="Stile2">Prezzo articolo*: 
    <input name="prezzo" type="text" class="tab_notizia" id="prezzo" onKeyUp="controllo()" value="<? echo $prezzo; ?>" size="20">
    </span> </h5></td>
    <td width="49%" align="left" valign="top"><h5 align="left">*<span class="Stile3"> Inserire un numero SENZA LETTERE O ALTRI SIMBOLI. La virgola va indicata col carattere <em>punto</em> ( . ) </span></h5></td>
    </tr>
    </table>
    <h5 align="center"><span class="tab_notizia">
    <input type="submit" class="button" name="Submit" id="submit" value="Aggiungi Articolo"<? if ($ver=="0") {echo "disabled";}; ?> >
    </span><input type="reset" class="button" name="cancella" id="reset" value="cancella"></h5></td>
    </tr>
    </table>
    </form></td>
    <td width="300" align="left" valign="top"><table width="300" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td align="left" valign="top"><form name="upload" method="post" action="aggiungi_immagine.php" enctype="multipart/form-data" onSubmit="carica()">
    <table width="300" align="center" cellpadding="3" cellspacing="0" bordercolor="#000099" class="tabella">
    <tr>
    <td width="300"><h5 align="center" class="tab_notizia"><span class="Stile2">Inserisci immagine ..</span>
    <input name="controllo_immagini" type="text" id="controllo_immagini" value="<? if (($urlfoto!='no') && ($urlfoto!='')) {echo 'Immagine inserita!';} else {$msg='Nessuna immagine inserita'; echo $msg;} ?>" size="30" maxlength="30" class="tab_titolo">
    </h5>
    <p align="center">
    <input name="file_caricato" type="file" class="button" id="file_caricato" size="27">
    <input type="submit" name="submit2" id="submit2" value="Carica immagine" class="button">
    <input name="nome2" type="hidden" id="nome2">
    <input name="descrizione2" type="hidden" id="descrizione2">
    <input name="prezzo2" type="hidden" id="prezzo2">
    </p></td>
    </tr>
    </table>
    <p>
    <? if (($urlfoto!="no") && ($urlfoto!="")){?>
    </p>
    <div align="center" class="Stile2">
    <h5>** Per mantenere un giusto layout è consigliabile inserire immagini di almeno 200 px di <em>larghezza</em>. I file superiori ad 1 Mb di grandezza <em>non</em> verranno caricati.</h5>
    </div>
    <p>  </p>
    <p align="center"> <img id="anteprima_immagine" src="immagini_inserite/<? echo $urlfoto; ?>" width="<? echo $larghezza; ?>" height="<? echo $altezza ; ?>">
    <? } else { ?> <p align="center">
    <img id="anteprima_immagine" src="immagini_inserite/noimage.jpg" width="100" height="100">
    <? }?>
    </p>

    </form>
    </body>
    </html>

    PAGINA DI INSERT NEL DB:

    <?
    include("config.inc.php");
    include("connect.php");
    $nome=$_POST['nome'];
    $descrizione=$_POST['descrizione'];
    $descrizione= addslashes($descrizione);
    $descrizione=nl2br($descrizione);
    $prezzo=$_POST['prezzo'];
    $urlfoto=$_POST['urlfoto'];
    if ($urlfoto=="no") {$urlfoto="noimage.jpg";};

    $nuovo=$_POST['nuovo'];
    $usato=$_POST['usato'];

    if ($nuovo=="on")
    {
    $query="INSERT INTO nuovo (articolo,descrizione,urlfoto,prezzo) VALUES ('$nome','$descrizione','$urlfoto','$prezzo')";
    mysql_query($query,$db);
    }

    if ($usato=="on"){
    $query="INSERT INTO usato (articolo,descrizione,urlfoto,prezzo) VALUES ('$nome','$descrizione','$urlfoto','$prezzo')";
    mysql_query($query,$db) ;}
    echo "Inserimento effettuato correttamente";
    ?>
    <script type="text/javascript" language="javascript">
    document.location.href="notifica inserimenti.php";
    </script>

    AGGIUNGI IMMAGINE:

    <?
    session_start();
    include("config.inc.php");
    include("connect.php");

    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES['file_caricato']['error'] == 0){
    // upload ok
    // controllo che il file sia in formato gif
    list($width, $height, $type, $attr) = getimagesize($_FILES['file_caricato']['tmp_name']);
    if (($type != 1) && ($type != 2) && ($type != 3)) {die("Formato file non valido, è permesso solo il formato gif");}
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    copy($_FILES['file_caricato']['tmp_name'], "immagini_inserite/".$_FILES['file_caricato']['name']) or die("Impossibile caricare il file");
    }
    else{
    // controllo il tipo di errore
    if ($_FILES['file_caricato']['error'] == 2){
    // errore, file troppo grande (> 1MB)
    die("Errore, file troppo grande: il massimo consentito è 1MB..torna indietro e riprova");
    }
    }
    $nome=$_POST['nome2']; //riprendo i dati dell'articolo
    $descrizione=$_POST['descrizione2'];
    $descrizione= addslashes($descrizione);
    $prezzo=$_POST['prezzo2'];
    $urlfoto=addslashes($_FILES['file_caricato']['name']);
    $larghezza=$width;
    $altezza=$height;
    if ($larghezza>170) {
    $altezza=($altezza*170)/$larghezza;
    $larghezza=170;}
    ?>
    <script type="text/javascript" language="javascript">
    document.location.href="aggiungi_articolo.php?nome=<? echo $nome; ?>&descrizione=<? echo $descrizione; ?>&prezzo=<? echo $prezzo; ?>&urlfoto=<? echo $urlfoto; ?>&larghezza=<? echo $larghezza; ?>&altezza=<? echo $altezza; ?>&ver=1";
    </script>

    MODIFICA IMMAGINE:

    <?
    session_start();
    include("config.inc.php");
    include("connect.php");

    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES['file_caricato']['error'] == 0){
    // upload ok
    // controllo che il file sia in formato gif
    list($width, $height, $type, $attr) = getimagesize($_FILES['file_caricato']['tmp_name']);
    if (($type != 1) && ($type != 2) && ($type != 3)) {die("Formato file non valido, è permesso solo il formato gif");}
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    copy($_FILES['file_caricato']['tmp_name'], "immagini_inserite/".$_FILES['file_caricato']['name']) or die("Impossibile caricare il file");
    }
    else{
    // controllo il tipo di errore
    if ($_FILES['file_caricato']['error'] == 2){
    // errore, file troppo grande (> 1MB)
    die("Errore, file troppo grande: il massimo consentito è 1MB..torna indietro e riprova");
    }
    }
    $urlfoto=addslashes($_FILES['file_caricato']['name']);
    $larghezza=12;
    $altezza=13;
    if ($larghezza>170) {
    $altezza=($altezza*170)/$larghezza;
    $larghezza=170;}
    $id=$_GET['id'];
    $articolo=$_POST['nome2'];
    $descrizione=$_POST['descrizione2'];
    $descrizione= addslashes($descrizione);
    $prezzo=$_POST['prezzo2'];
    //echo $id."<br>".$articolo."<br>".$descrizione."<br>".$prezzo."<br>".$urlfoto;
    $query="UPDATE usato SET articolo = '".$articolo."', descrizione = '".$descrizione."', urlfoto = '".$urlfoto."', prezzo = '".$prezzo."' WHERE usato.id =".$id." LIMIT 1 ";
    mysql_query($query,$db);
    //echo $query;
    ?>
    <script type="text/javascript" language="javascript">
    document.location.href="modifica_articolo.php?id=<? echo $id; ?>";
    </script>
    [/php]
    fammi sapere, ciao


  • User Attivo

    non capisco... mi sembra che tu abbia un solo file da caricare con il campo type="file" id="file_caricato"... o mi sbaglio? se è così, non puoi caricare più di un file! Devi inserire più campi, per usare poi il mio metodo ognuno con un nome diverso, e poi creare un array con i nomi dei campi. mi spiace non poterti allegare tutto il codice che uso perché ora sono in ufficio, comunque simile al tuo...

    ti segno le aggiunte che farei:

    
    $nomiCampiFiles = array("nome1", "nome2", "nome3);
    foreach($nomiCampiFiles as $nome){
     // controllo che non ci siano stati errori nell'upload (codice = 0) 
     if ($_FILES[$nome]['error'] == 0){
       // upload ok
       // controllo che il file sia in formato gif
       *list*($width, $height, $type, $attr) = getimagesize($_FILES[$nome]['tmp_name']);
     if (($type != 1) && ($type != 2) && ($type != 3)) {die("Formato file non valido, è permesso solo il formato gif");}
       // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale 
     copy($_FILES[£nome]['tmp_name'], "immagini_inserite/".$_FILES[$nome]['name']) or die("Impossibile caricare il file");
     }
     else{
       // controllo il tipo di errore
       if ($_FILES[$nome]['error'] == 2){
       // errore, file troppo grande (> 1MB)
       die("Errore, file troppo grande: il massimo consentito è 1MB..torna indietro e riprova");
       }
     }
     $nome=$_POST['nome2']; //riprendo i dati dell'articolo
     $descrizione=$_POST['descrizione2'];
     $descrizione= addslashes($descrizione);
     $prezzo=$_POST['prezzo2'];
     $urlfoto=addslashes($_FILES[$nome]['name']);
     $larghezza=$width;
     $altezza=$height;
     if ($larghezza>170) {
     $altezza=($altezza*170)/$larghezza;
     $larghezza=170;}
    }
     ?>
    ```così dovrebbe funzionare... prova un po'! :D

  • User Attivo

    Io spero proprio di non disturbarti più di tanto.. appena puoi e se puoi..Grazie 1000 e a buon rendere!!..

    Ho fatto così ma mi restituisce questi errori:

    Notice: Undefined index: file_caricato in c:\programmi\easyphp1-8\www\erbario_2_exp\add_img_tess.php on line 11

    Notice: Undefined index: file_caricato in c:\programmi\easyphp1-8\www\erbario_2_exp\add_img_tess.php on line 15

    <?
    session_start();
    include("config.inc.php");
    include("connect.php");

    $nomi = array("file_tessuto", "file_caricato");
    foreach($nomi as $nome);
    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES[$nome]['error'] == 0)
    {
    // upload ok
    // controllo che il file sia in formato gif
    list($width, $height, $type, $attr) = getimagesize($_FILES[$nome]['tmp_name']);
    if (($type != 1) && ($type != 2) && ($type != 3)) {die("Formato file non valido, è permesso solo il formato gif");}
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
    copy($_FILES[$nome]['tmp_name'], "immagini_inserite/".$_FILES[$nome]['name']) or die("Impossibile caricare il file");
    }
    else{
    // controllo il tipo di errore
    if ($_FILES[$nome]['error'] == 2){
    // errore, file troppo grande (> 1MB)
    die("Errore, file troppo grande: il massimo consentito è 1MB..torna indietro e riprova");
    }
    }
    $ghost=$_POST['ghost2'];//riprendo i dati dell'articolo
    $sezione=$_POST['sezione2'];
    $modello=$_POST['modello2'];
    $descrizione=$_POST['descrizione2'];
    $prezzoa=$_POST['prezzoa2'];
    $prezzob=$_POST['prezzob2'];
    $art_tess=$_POST['art_tess2'];
    $col_tess=$_POST['col_tess'];

    $antep_sac1=addslashes($_FILES['file_tessuto']['name']);
    $larghezza=$width;
    $altezza=$height;
    if ($larghezza>170) {
    $altezza=($altezza*170)/$larghezza;
    $larghezza=170;}
    ?>
    <script type="text/javascript" language="javascript">
    document.location.href="ins_tess.php?ghost=<? echo $ghost; ?>&sezione=<? echo $sezione; ?>&modello=<? echo $modello; ?>&descrizione=<? echo $descrizione; ?>&prezzoa=<? echo $prezzoa; ?>&prezzob=<? echo $prezzob; ?>&art_tess=<? echo $art_tess; ?>&col_tess=<? echo $col_tess; ?>&antep_sac1=<? echo $antep_sac1; ?>&larghezza=<? echo $larghezza; ?>&altezza=<? echo $altezza; ?>&ver=1";
    </script>


  • User Attivo

    figurati, nessun disturbo...

    sei sicuro di aver messo un campo type="file" che si chiama file_caricato ? e quando hai fatto la prova hai selezionato un file per quel campo?

    ti mando il codice che uso io...

    <?php
    $upDir = "/home/mioUtente/cartella";
    $filenames = array("fotoone", "fototwo", "fotothree", "fotofour", "fotofive", "fotosix");
    
    foreach($filenames as $file){
    	if ((($_FILES["$file"]["type"] == "image/gif")
    		|| ($_FILES["$file"]["type"] == "image/jpeg")
    		|| ($_FILES["$file"]["type"] == "image/pjpeg"))){
      		if ($_FILES["$file"]["error"] > 0){
        			echo "Return Code: " . $_FILES["$file"]["error"] . "<br />";
        		}
      		else{
        			echo "Upload: " . $_FILES["$file"]["name"] . "<br />";
        			echo "Type: " . $_FILES["$file"]["type"] . "<br />";
        			echo "Size: " . ($_FILES["$file"] / 1024) . " Kb<br />";
        			echo "Temp file: " . $_FILES["$file"]["tmp_name"] . "<br />";
        			if (file_exists("$upDir" . $_FILES["$file"]["name"])){
          				echo $_FILES["$file"]["name"] . " already exists. ";
          			}
        			else{
          				move_uploaded_file($_FILES["$file"] ["tmp_name"],
          					"$upDir" . $_FILES["$file"]["name"]);
          				echo "Stored in: " . "$upDir" . $_FILES["$file"]["name"];
    				chmod("$upDir".$_FILES["$file"]["name"], 0755);
          			}
        		}
      	}
    	else{
      		echo "Invalid file";
      	}
    }
    ?>
    

  • User Attivo

    un milione di grazie!!!... ora lo provo e lunedì ti faccio sapere.

    Buon we. ciao:D