FileReader Fehler: Das Objekt ist bereits gebucht-Lesen von Blobs
Mache ich ein drag-and-drop-Datei-upload-system für Foto-Galerie-uploads. Das ist mein source-code handling abgelegten Dateien. Diese arbeitet Sie mehrere Dateien, wenn ich legen Sie Sie eins nach dem anderen funktioniert es aber, wenn ich mal mehr als eine zur gleichen Zeit dieser Fehler tritt auf:
Uncaught InvalidStateError: Failed to execute 'readAsDataURL' on 'FileReader': The object is already busy reading Blobs.
function handleFiles(files)
{
var reader = new FileReader();
var formdata = new FormData();
$.each(files, function(i, j)
{
$("td.photos span.status").html("Processing file: "+j.name);
formdata.append('file', j);
$.ajax({
url: "uploadalbum.php",
type: "POST",
dataType: "json",
data: formdata,
processData: false,
contentType: false,
success: uploadfinished
});
reader.onload = handleReaderLoad;
reader.readAsDataURL(j);
});
}
Irgendwelche Ideen?
- müssen Sie rufen Sie
FileReader.abort()
nachdem Sie jeweils behandelnonLoad
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, der Fehler ist dir bereits gegeben.
Also die Datei-reader ist bereits gebucht-aber nur, wenn Sie drop mehrere Dateien? Dann ist es wahrscheinlich gerade mit der ersten Datei (und der zweite stürzt ab).
Wenn Sie
var reader = new FileReader();
in Ihre jQuery each-Schleife funktioniert es wie unten:Einen Fall, der das verursachen kann, ist wenn ein Datei-reader wird zweimal genannt. Wenn es noch läuft, es gibt diese Fehler.