【发布时间】:2016-08-09 14:56:18
【问题描述】:
我正在上传文件并显示每次加载的进度条,但它仅适用于一个进度条。
在html中,
<input type="file" id="file-input" multiple>
<div id="file-list">
</div>
在 Javascript 中,
$('#file-input').change(function(e) {
for (var i = 0, f; f = files[i]; i++) {
var reader = new FileReader();
reader.readAsBinaryString(f);
reader.onloadstart = function (e) {
var text = '<div><div id="progress_bar" class="loading"><div class="percent">0%</div></div></div>';
$('#file-list').append(text);
}
reader.onload = function(e) {
var progress = document.querySelector('.percent');
progress.style.width = '100%'; // replacing with percentage
progress.textContent = '100%';
}
}
});
一次上传三个文件的结果是显示一个进度条为 100%,两个进度条为 0%。这有什么问题?
【问题讨论】:
-
是否需要显示每个
File对象的进度?另见stackoverflow.com/questions/19871627/…。FileReader是异步的。第二个文件上传不会等待第一个文件上传完成才开始 -
是的,我想显示每个正在上传的文件的进度。谢谢。
标签: javascript html file uploading