我上传文件并显示每个负载的进度条,但仅适用于仅一个进度栏。进度条在文件上传中未更新其宽度
在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'对象进度?参见http://stackoverflow.com/questions/19871627/javascript-for-loop-scope-takes-last-variable。 FileReader是异步的。第二个文件上传不会等待第一个文件上传完成之前 – guest271314
是的,我想显示每个上传文件的进度。谢谢。 – user2307087