2016-05-31 6 views
1

Ich verwende diese Ajax-Methode für den Upload ein Bild und einige Daten davon:

$.post("http://-------/uploadFile",{ 
      img: $("#imageDaRitagliare").cropper('getCroppedCanvas').toDataURL(), 
      nomeFile : nomeFileInUso, 
      nomeFileOrigin : nomeOriginaleFileInUso, 
      fileAttuale : $("#img_input").attr("nomeFile"), 
      fileAttualePath : $("#img_input").attr("pathfile"), 
      fileCanellaAttuale : canCanc 
     },function(response){ 
      var dato = JSON.parse(response); 

      $("#img_input").empty().val(dato.nomeOriginaleFile); 
      $("#img_input").attr("nomeFile",dato.nomeFile); 
      $("#img_input").attr("pathFile",dato.path); 
     }); 

das funktioniert, aber ich brauche einen Weg, einen bestimmten Prozentsatz der Upload haben ... sorry für schlechtes Englisch, ich bin italienisch. (:.

+0

http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/ –

+0

aber ich habe $ .post Methode –

+0

$ .post ist nur ein Anruf mit $ .ajax() , nur mit dem Typ als POST festgelegt. :) Die Verwendung von $ .ajax() gibt Ihnen mehr Kontrolle über die Daten. Hier ist der Link zur API: http://api.jquery.com/jquery.ajax/ –

Antwort

1

$ Schnipsel für ajax-Request verwenden, da es hat xhr in api Definition ist selbst Wir sind die native XHR Anfrage und hören für progress Zugriff Prozentsatz zeigen

var data = { 
     img:$("#imageDaRitagliare").cropper('getCroppedCanvas').toDataURL(), 
     nomeFile : nomeFileInUso, 
     nomeFileOrigin : nomeOriginaleFileInUso, 
     fileAttuale : $("#img_input").attr("nomeFile"), 
     fileAttualePath : $("#img_input").attr("pathfile"), 
     fileCanellaAttuale : canCanc 
    } 

$.ajax({ 
    xhr: function() 
    { 
    var xhr = new window.XMLHttpRequest(); 
    //Upload progress 
    xhr.upload.addEventListener("progress", function(evt){ 
     if (evt.lengthComputable) { 
     var percentComplete = evt.loaded/evt.total; 
     //Do something with upload progress 
     console.log(percentComplete); 
     } 
    }, false); 
    //Download progress 
    xhr.addEventListener("progress", function(evt){ 
     if (evt.lengthComputable) { 
     var percentComplete = evt.loaded/evt.total; 
     //Do something with download progress 
     console.log(percentComplete); 
     } 
    }, false); 
    return xhr; 
    }, 
    type: 'POST', 
    url: "/", 
    data: data, 
    success: function(response){ 
    var dato = JSON.parse(response); 

     $("#img_input").empty().val(dato.nomeOriginaleFile); 
     $("#img_input").attr("nomeFile",dato.nomeFile); 
     $("#img_input").attr("pathFile",dato.path); 
    } 
}); 
+0

Die Eigenschaft 'addEventListener' von undefined kann nicht gelesen werden. on: XMLHttpRequest.upload.addEventListener ("Fortschritt", Funktion (evt)) { –

+0

http://stackoverflow.com/questions/23140054/beforesend-xhr-object-uncaught-typeerror-cannot-read-property-addeventlisten Pech gehabt. Es ist unbeantwortet –

+0

wenn das unbeantwortet ist, wie kann mir das helfen? Ahah :) –