2

我試圖mget上傳的進展(這隻會是一個圖像btw)。 我用的XMLHttpRequest和幾乎沒有像其他人一樣在互聯網上做,具體如下:XMLHttpRequest.upload進度事件只適用於IE

var upProgress = function(e) { 
    console.log(e.loaded, e); 
}; 

var fd = new FormData(); 
fd.append('image', file); 

var xhr = new XMLHttpRequest(); 
xhr.upload.addEventListener('progress', upProgress, false); 

xhr.open('POST', _Utilities.urlApi + url); 
xhr.send(fd); 

的圖像上傳,這部分作品。 但是,進度事件(在Firefox 31和Chrome 36中)僅在e.loaded = e.total = file' size(一開始)觸發一次。它在IE 11中工作,該事件觸發了十幾次相同的圖片(約2.7Mo)。

我迷失在這裏,我在網上搜索,但沒有發現任何我沒有做過的事情。 例如e.loadede.total應該是相同的lengthComputable = false這不是這裏的情況。

以上console log顯示在Chrome和Firefox只有1號線,這裏的一些進展事件元素的內容:

lengthComputable: true 
loaded: 2797378 
total: 2797378 
totalSize: 2797378 
type: "progress" 

在IE瀏覽器,但是我得到這個(我數都加載值和事件的元素):

149 [object ProgressEvent] 
131072 [object ProgressEvent] 
262144 [object ProgressEvent] 
... 
2752512 [object ProgressEvent] 
2797384 [object ProgressEvent] 

這意味着它按預期工作。

我不知道是什麼原因造成的。 以上所有都是在我的機器上進行測試。我遇到過一些只在某些機器或設置上遇到麻煩的人,一位朋友在其機器上嘗試過,它也是如此(Windows 8.1和Chrome),另一位朋友嘗試了相同的結果(MACOS和Chrome)。

如果您有任何想法,請在此分享,thx提前!

+0

它看起來像這個代碼實際上工作。我試圖上傳我認爲是圖標並最終成爲虛擬機(所以1.6 + Go),我看到了Chrome上的%。我認爲它是立即100%,因爲它立即上傳整個圖像或其他東西。而且一切都是本地的,所以它超快。 – Mimu 2014-09-02 16:25:00

回答

相關問題