Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: [PHP] Upload multiplo

  1. #1

    [PHP] Upload multiplo

    Ciao a tutti,

    sto creando un file upload muliplo, cioé selezioni il numero di file che vuoi mettere e mi stampa la selezione del file, ora se ne carico uno sul server funziona ma se provo a mettere per esempio 2 file non va, sapete dirmi dove sbaglio gentilmente?

    Codice PHP:
    <?php 

    // Recupero il numero per stampare diversi file browse

    $numberfile $_POST['uploadfile'];

    // Numero massimo per il menu a tendina

    $maxFileUpload "30";

    // Grandezza massima dei file da caricare

    $MAX_FILE_SIZE "20000";

    // Tipo di estenzioni consentite

    $allowed_types = array("image/gif","image/pjpeg","image/jpeg");

    // Destinazione file da caricare sul server

    $target_path "./upload/";
    $target_path $target_path basename($fileupload_name);

    /////////////////////////////////////////////////////////////////////////

    $fileupload_temp  $_FILES['fileupload']['tmp_name'];
    $fileupload_name  $_FILES['fileupload']['name'];
    $fileupload_size  $_FILES['fileupload']['size'];
    $fileupload_type  $_FILES['fileupload']['type'];
    $fileupload_error $_FILES['fileupload']['error'];

    // Controllo se Submit é impostato

    if (isset($_POST['Submit'])) {

    // Controllo se il file é selezionato

    if (empty($fileupload_name)) {
    $msg "<span class=\"TestoLinks\">Selezionare il file!</span>";
    }

    // Controllo l'estenzione del file

    elseif (!in_array($fileupload_type$allowed_types)) {
    $msg "<span class=\"TestoLinks\">Sono ammessi solo file \"jpg\".</span>";
    }

    // Controllo la dimensione del file

    elseif ($fileupload_size $MAX_FILE_SIZE) {
    $msg "<span class=\"TestoLinks\">Il file $fileupload_name é troppo grande.</span>";
    }

    // Controllo se il file esiste

    elseif (file_exists($target_path)) {
    $msg "<span class=\"TestoLinks\">Il file $fileupload_name esiste già. Rinomina il file.</span>";
    $img "<img src=\"./upload/$fileupload_name\" width=\"120\" height=\"80\">";
    }

    // Se il file é corretto allora copialo sul server

    else {
    move_uploaded_file($fileupload_temp$target_path);
    $msg "<span class=\"TestoLinks\">Il file $fileupload_name é stato caricato con successo.</span>";
    $img "<img src=\"./upload/$fileupload_name\" width=\"120\" height=\"80\">";
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>

    <body>


    Seleziona il numero di file che vuoi caricare </p>
    <form id="selectNumber" name="selectNumber" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
      <select name="uploadfile" id="uploadfile">
        <?php 
        
    for($i=1;$i<=$maxFileUpload;$i++) {
        echo 
    "<option value=\"$i\">$i</option>";
        }
        
    ?>
      </select>
      <input name="go" type="submit" id="go" value="Go" />
    </form>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="fileupload" id="fileupload">
    <input type="hidden" name="MAX_FILE_SIZE" value="$MAX_FILE_SIZE"/>
      <?php 
        
    for($i=1;$i<=$numberfile;$i++) {
        echo 
    "<input type=\"file\" name=\"fileupload\" id=\"fileupload\" />
    "
    ;
        }
        
    ?>
      <input name="Submit" type="submit" id="Submit" value="Submit" />
    </form>


    <?php echo $msg."
    "
    .$img;?></p>
    </body>
    </html>
    Grazie Michel
    PHP THE BEST

  2. #2
    Utente di HTML.it L'avatar di *pragma
    Registrato dal
    Sep 2001
    Messaggi
    1,087
    non ho letto il tuo codice.
    controlla le dimensioni del secondo file. Non possono essere maggiori di 2MB, a meno che non hai cambiato l'impostazione di defoult in php.ini
    max 2MB per ogni singolo file
    max 8MB per il totale dei file (di defoult ... che può essere cambiato)
    ciao

    perchè nel primo form (ho letto velocemente il codice) manca l'enctype ... Perchè?
    riciao

  3. #3
    ho controllato ma non é per via della grandezza del file, se inserisco 2 file da mettere sul server mi copia il primo e il secondo no!!

    Cosa devo fare? qualche dritta?

    Grazie Michel
    PHP THE BEST

  4. #4
    uppete
    PHP THE BEST

  5. #5
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Alla prima occhiata direi che devi chiamare diversamente ciascun input file, magari concatenando a name e id il contatore $i, altrimenti resta un solo input file scritto tante volte...

    echo "<input type=\"file\" name=\"fileupload".$i."\" id=\"fileupload".$i."\" />
    ";
    /* Let's Lead the Web to Its Full Potential */

  6. #6
    Si quello che mi hai detto lo fatto effetivamente il nome era sempre uguale, ma pero il mio script non funziona ancora, adesso per semplificare ho tolto tutti i controlli:

    Codice PHP:
    <?php 
    $numberfile 
    $_POST['uploadfile']; 
    $maxFileUpload "30"



    $target_path "./upload/"
    $target_path $target_path basename($fileupload_name); 

    ///////////////////////////////////////////////////////////////////////// 

    $fileupload_temp  $_FILES['fileupload']['tmp_name']; 
    $fileupload_name  $_FILES['fileupload']['name']; 
    $fileupload_size  $_FILES['fileupload']['size']; 
    $fileupload_type  $_FILES['fileupload']['type']; 
    $fileupload_error $_FILES['fileupload']['error']; 

    // Controllo se Submit é impostato 

    if (isset($_POST['Submit'])) 



    if (isset(
    $numberfile) && $numberfile == 1
    {
    move_uploaded_file($fileupload_temp$target_path); 
    $msg "<span class=\"TestoLinks\">Il file $fileupload_name é stato caricato con successo.</span>"
    $img "<img src=\"./upload/$fileupload_name\" width=\"120\" height=\"80\">"

    else 
    {
    $numberfile $_POST['uploadfile'];
    for(
    $i=1;$i<=$numberfile;$i++) 
    {
    move_uploaded_file($fileupload_temp['$i'], $target_path); 
    $msg "<span class=\"TestoLinks\">Il file $fileupload_name é stato caricato con successo.</span>"
    $img "<img src=\"./upload/$fileupload_name\" width=\"120\" height=\"80\">"

    }
    }
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Untitled Document</title> 
    </head> 

    <body> 


    Seleziona il numero di file che vuoi caricare </p> 
    <form id="selectNumber" name="selectNumber" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
      <select name="uploadfile" id="uploadfile"> 
        <?php 
        
    for($i=1;$i<=$maxFileUpload;$i++) { 
        echo 
    "<option value=\"$i\">$i</option>"
        } 
        
    ?> 
      </select> 
      <input name="go" type="submit" id="go" value="Go" /> 
    </form> 
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="fileupload" id="fileupload"> 
      <?php 
        
    for($i=1;$i<=$numberfile;$i++) { 
        echo 
    "$i<input type=\"file\" name=\"fileupload".$i."\" id=\"fileupload".$i."\" />
    "

        } 
        
    ?> 
      <input name="Submit" type="submit" id="Submit" value="Submit" /> 
    </form> 


    <?php echo $msg."
    "
    .$img;?></p> 
    </body> 
    </html>
    non capisco come farli copiare nella cartella upload!!

    Se sapete darmi altre dritte, ve ne sarei grato!

    Grazie Michel
    PHP THE BEST

  7. #7
    http://forum.html.it/forum/showthrea...hreadid=764691

    puo' esserti utile la pilloa di marketto...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Originariamente inviato da Sbarboff2005
    Si quello che mi hai detto lo fatto effetivamente il nome era sempre uguale, ma pero il mio script non funziona ancora
    Per forza!
    Ragiona un attimo. Come li rinomini, devi anche raccoglierli con quel nome! :rollo:
    Se invii Tizio dal client, devi cercare Tizio anche sul server...
    Ora i files si chiamano fileupload1, fileupload2, fileuploadN...
    Quindi con un ciclo li raccogli dall'array globale $_FILES e fai l'upload uno ad uno.
    Qualcosa del tipo:
    Codice PHP:
    for($i=1;$i<=$numberfile;$i++) { 
        
    $fileupload_temp  $_FILES['fileupload$i']['tmp_name']; 
        
    $fileupload_name  $_FILES['fileupload$i']['name']; 
        
    $fileupload_size  $_FILES['fileupload$i']['size']; 
        
    $fileupload_type  $_FILES['fileupload$i']['type']; 
        
    $fileupload_error $_FILES['fileupload$i']['error'];
        
    // fai l'upload qui... con move_uploaded_file ecc...

    poi controlla anche di aver messo enctype="multipart/form-data" nel form.
    /* Let's Lead the Web to Its Full Potential */

  9. #9
    Ho fatto come dici tu ma non riesco a fare copiare i file sul server!!
    Grgr

    codice:

    Codice PHP:
    <?php
    $numberfile 
    $_POST['uploadfile'];
    $maxFileUpload "30";

    if (isset(
    $_POST['Submit']))
    {
    for(
    $i=1;$i<=$numberfile;$i++) 
    {
        
    $fileupload_temp  $_FILES['fileupload$i']['tmp_name'];
        
    $fileupload_name  $_FILES['fileupload$i']['name'];
        
    $fileupload_size  $_FILES['fileupload$i']['size'];
        
    $fileupload_type  $_FILES['fileupload$i']['type'];
        
    $fileupload_error $_FILES['fileupload$i']['error'];
        !
    move_uploaded_file($fileupload_temp"./upload/"$fileupload_name);
    $msg "Il file $fileupload_name é stato caricato con successo.";
    }
    } else {
    $msg "Errore";


    ?>
    Mi sai aiutare naturalmente lo chiedo con gentilezza grazie.

    Michel
    PHP THE BEST

  10. #10
    Utente di HTML.it L'avatar di Cheope
    Registrato dal
    Dec 2003
    Messaggi
    327
    Originariamente inviato da Sbarboff2005
    !move_uploaded_file($fileupload_temp, "./upload/". $fileupload_name);
    Non manca un if? O te l'ha mangiato l'editor del forum?
    Se mi incolli di nuovo tutto il codice della pagina con le ultime modifiche, vediamo di farlo funzionare.
    /* Let's Lead the Web to Its Full Potential */

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.