Ich lade Dateien hoch und zeige Fortschrittsbalken für jeden Ladevorgang an, aber es gilt nur für einen Fortschrittsbalken.Fortschrittsbalken aktualisiert seine Breite beim Hochladen von Dateien nicht
In html,
<input type="file" id="file-input" multiple>
<div id="file-list">
</div>
In 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%';
}
}
});
Das Ergebnis für das gleichzeitige Hochladen von drei Dateien zeigt einen Fortschrittsbalken mit 100% und zwei Balken mit 0%. Was ist daran falsch?
ist Voraussetzung auch für jedes 'File' Objekt Fortschritt angezeigt werden? Siehe auch http://stackoverflow.com/questions/19871627/javascript-for-loop-scope-takes-last-variable. 'FileReader' ist asynchron. Der zweite Datei-Upload wartet nicht auf den ersten Datei-Upload, bevor er gestartet wird. – guest271314
Ja, ich möchte den Fortschritt für jede hochgeladene Datei anzeigen. Vielen Dank. – user2307087