Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ok, provo a cercare qualche esempio...
    sinceramente non ho mnai usato questo metodo e devo documentarmi bene..

    Grazie per il suggerimento

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Non riesco a trovare uno script che faccia un upload di files (selezionandone piu di 1) e che compaia una progress bar oppure un immagine gif loading... che ruchiami una pagina php una sola volta e che faccia l'upload usando il for..

    Qualcuno di voi puo' consigliarmi uno script ??

    Grazie

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Beh, vuoi una cosa piuttosto elaborata, non è detto che esista uno script già pronto per qualsiasi cosa ci serva.
    Trova tutorial per ogni singola parte (oppure sapendo le tecnologie necessarie te le studi e le realizzi) e poi metti insieme tutti i pezzi.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    ho trovato questo video http://www.youtube.com/watch?v=EraNFJiY0Eg

    Modificando la function uploadFile in
    codice:
    var file = _("file1").files[0]; //alert(file.name+" | "+file.size+" | "+file.type);
         var formdata = new FormData();
         formdata.append("file1", file);      
         var file = _("file2").files[0]; //alert(file.name+" | "+file.size+" | "+file.type);
         formdata.append("file2", file);      
         var file = _("file3").files[0]; //alert(file.name+" | "+file.size+" | "+file.type);
         formdata.append("file3", file);
    ho aggiunto 2 input file nel form ed ho modificato il file upload.php aggiungendo il foreach!

    Sono riuscito a risolvere il problema.
    ora funziona come volevo!

    Grazie a tutti per il supporto

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    bastava anche semplicemente aggiungere multiple nell'input file, lasciando l'esempio esattamente cos' com'è!

    Spero che questa soluzione possa esser utile a qualcun altro

    Ciao

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,508
    Verifica per bene che funzioni, perché questa soluzione è stata provata già da altri senza successo qui sul forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Funziona perfettamente, ho fatto qualche modifica al codice java per eseguire l'upload multiplo, ecco il codice completo e funzionante!

    index.php
    codice:
    <!DOCTYPE html> 
    <html>
    <head>
    <script> 
    function _(el){ 
        return document.getElementById(el);
    } 
    function uploadFile(){
        
        var input = document.getElementById('file1');
    
        var formdata = new FormData();
        var indice= 0;
        
        for (var x = 0; x < input.files.length; x++) {
            //add to list
            var file = _("file1").files[x]; 
            //alert("file"+x);    
            //alert(file.name+" | "+file.size+" | "+file.type);        
            
            formdata.append("file"+x, file);     
            indice=x;
        }
        
        formdata.append("indice", indice);
         
         var ajax = new XMLHttpRequest(); 
         ajax.upload.addEventListener("progress", progressHandler, false); 
         ajax.addEventListener("load", completeHandler, false); 
         ajax.addEventListener("error", errorHandler, false); 
         ajax.addEventListener("abort", abortHandler, false); 
         ajax.open("POST", "upload.php"); 
         ajax.send(formdata); 
    } 
    function progressHandler(event){ 
        _("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total; 
        var percent = (event.loaded / event.total) * 100; 
        _("progressBar").value = Math.round(percent);
         _("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
    } 
    function completeHandler(event){ 
        _("status").innerHTML = event.target.responseText; 
        _("progressBar").value = 0; 
    } 
    function errorHandler(event){
        _("status").innerHTML = "Upload Failed";
    } 
    function abortHandler(event){ 
        _("status").innerHTML = "Upload Aborted";
    } 
    </script> 
    </head> 
    <body> <h2>HTML5 File Upload Progress Bar Tutorial</h2> 
    
    <form id="upload_form" enctype="multipart/form-data" method="post"> 
    <input type="file" name="file" id="file1" multiple><br>
    
    <input type="button" value="Upload File" onclick="uploadFile()"> 
    <progress id="progressBar" value="0" max="100" style="width:300px;"></progress> 
    <h3 id="status"></h3>
     <p id="loaded_n_total"></p>
      </form>
     </body> 
     </html>

    pagina upload.php
    codice:
    <?php
    $dir="/web/htdocs/www.xxxxxxx.it/home/test/";  // scrivere il percorso assoluto della directory dove caricare i files  
    
                        
    for($i=0; $i<=$_POST["indice"]; $i++){
       
                            
        $fileName = $_FILES["file".$i]["name"]; // The file name 
        $fileTmpLoc = $_FILES["file".$i]["tmp_name"]; // File in the PHP tmp folder 
        $fileType = $_FILES["file".$i]["type"]; // The type of file it is 
        $fileSize = $_FILES["file".$i]["size"]; // File size in bytes 
        $fileErrorMsg = $_FILES["file".$i]["error"]; // 0 for false... and 1 for true 
        if (!$fileTmpLoc) { // if file not chosen 
            echo "ERROR: Please browse for a file before clicking the upload button."; 
            exit();
        } 
             
        if(move_uploaded_file($fileTmpLoc, $dir."/$fileName"))
        {
            echo "$fileName upload is complete"; 
        } 
        else 
        {
            echo "move_uploaded_file function failed";
        }
            
        
    }            
    
    ?>


    il codice java che ho aggiunto è
    codice:
    for (var x = 0; x < input.files.length; x++) {
            //add to list
            var file = _("file1").files[x]; 
            //alert("file"+x);    
            //alert(file.name+" | "+file.size+" | "+file.type);        
            
            formdata.append("file"+x, file);     
            indice=x;
        }
    con questo for creo n variabili per gli n files selezionati.
    Ho dovuto creare per ogni file selezionato una variabile file (file+x ossia file0, file1, ecc..) perchè tramite ajax non è possibile inviare un array dei file selezionati

    questo script che ho modificato funziona perfettamente!

    Spero che possa essere utile..

    grazie

    ciao


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.