firefox html5 文件上传progress bug
最近尝试使用html5 file API,实现方案是使用html5 drag and drop拖拽文件,然后使用XMLHttpRequest()对象二进制上传文件,并且监听progress事件,展示文件上传进度。
初始化界面

上传成功后

在chrome中一切正常,但是在firefox中,当上传的文件小于100KB的时候,firefox不会触发progress事件,导致进度条不无获取已上传的参数值。firefox如下:

然后我做了一个测试,当拖拽一个小图片到firefox时,在progress事件中,使用console.log(),检测是否触发progress事件,结果firefox非常失望,文件上传成功并未触发progress事件,而chrome一切正常。

firefox下firebug
chrome下正常情况

为了解决firsfox这个问题,我监听了上传的load事件,检测文件如果上传成功,progress bar的进度值不是100%,那么强制设置为100%。

资源下载:完整代码,本地使用localhost访问dragfile.html。
首页
2013-02-05 16:38
308 views