2012-07-20 98 views
0

我有一個文件上傳工作,因爲文件和變量正在上傳,並且完成處理程序正在觸發,當上傳完成..但進度處理程序不是..任何想法爲什麼不? 。問候J爲什麼進度沒有被觸發?

function uploadFile_function(){ 
    var formData = new FormData(); 
    formData.append("var1", "jane"); 
    formData.append("varFile", fileToUpload); 

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "upload.php"); 

    xhr.addEventListener("progress", function (ev) { 
     alert('progress'); 
    }, false); 

    xhr.addEventListener("load", function (ev) { 
     alert('complete'); 
    }, false); 

    xhr.send(formData); 
} 

回答

1

您需要致電事件偵聽器before calling xhr.open

+0

感謝史蒂夫,但是althought這可能是正確的藏漢,問題依然存在..答案是在您添加的鏈接...見下文。 (我加1你的答案:)如果你想編輯你的問題添加下面在我會努力它作爲正確的答案!..再次感謝 – jon 2012-07-20 17:46:09

+0

優秀。很高興的鏈接能夠幫助。 – 2012-07-20 19:39:00

1

下載和上傳傳輸都存在進度事件。下載事件在XMLHttpRequest對象上觸發,如上例所示。上傳事件在XMLHttpRequest.upload對象上發射,如下圖所示:

function uploadFile_function(){ 
    var formData = new FormData(); 
    formData.append("var1", "trip"); 
    formData.append("varFile", fileToUpload); 

    var xhr = new XMLHttpRequest(); 

    xhr.upload.addEventListener("progress", function (ev) { 
     alert('progress'); 
    }, false); 

    xhr.upload.addEventListener("load", function (ev) { 
     alert('complete'); 
    }, false); 

    xhr.open("POST", "upload.php"); 
    xhr.send(formData); 
}