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

回答

相关问题