2014-12-10 29 views
0

我有一些代碼旨在在縮放客戶端後自動上載圖像。圖像上傳很好,但是,XHR進度事件在第一次後不會觸發。任何幫助將不勝感激。XHR Progress僅在開始時觸發

注意:我正在上傳一個jpg的BLOB,並將它們組裝並保存在服務器上,如果這可能很重要。

這裏是我的代碼:的

var uploadCameraPhoto = function (blob, filename, dataUrl) { 
    var xhr = new XMLHttpRequest(); 
    if (xhr.upload) { 
    var formData = new FormData() ; 
    formData.append('file', blob, filename) ; 

    xhr.upload.onprogress = function(e) { 
     console.log(e.loaded + '/' + e.total); 
    } ; 

    xhr.onload = function (e) { 
     console.log(((xhr.status === 200) ? 'uploaded' : ('error: ' + xhr.status))); 
    } ; 

    var action = $('upload').get('action') ; 

    xhr.open("POST", action, true); 
    xhr.setRequestHeader("X_FILENAME", filename); 
    xhr.send(formData); 
    } 
} ; 

回答

0

代替:

xhr.upload.onprogress = function(e) { 
    console.log(e.loaded + '/' + e.total); 
}; 

嘗試:

function uploadProgress(e) { 
    if (e.lengthComputable) { 
    console.log(e.loaded/e.total); 
    } else { 
    console.log('Cannot compute progress.'); 
    } 
} 

xhr.upload.addEventListener("progress", uploadProgress, false); 
+0

謝謝你,但似乎並沒有做到這一點。它仍然只在一開始就發生。當我第一次開始時,我的東西非常相似,而且工作。當我切換到使用BLOB而不是實際的文件時出現問題。 – 2014-12-11 20:10:57

相關問題