Was macht eigentlich die HTML5 File.slice-Methode?
Ich arbeite mit einer benutzerdefinierten API, um einem Benutzer das Hochladen einer Datei (von hoffentlich beliebiger Größe) zu ermöglichen. Wenn die Datei zu groß ist, wird sie blockiert und in mehreren Anforderungen an den Server verarbeitet.
Ich schreibe Code, der verwendetFile
undFileReader
(HTML5) nach vielen Beispielen aus dem Internet. Im Allgemeinen (nach dem, was ich online gelesen habe) erhalten Benutzer für eine blockierte Dateiübertragung zuerst einen Datenblock von ihrem Dateiobjekt
var file = $('input[type=file]')[0].files[0];
var blob = file.slice(start,end)
Dann benutze aFileReader
um den Klecks zu lesenreadAsArrayBuffer(blob)
oderreadAsBinaryString(blob)
Und schließlich inFileReader.onload(e)
senden Sie die Daten an den Server. Wiederholen Sie diesen Vorgang für alle Blöcke in der Datei.
Meine Fragen sind
Warum muss ich a verwenden?FileReader
? Wenn ich es nicht benutze, sende ich einfach Blobs mitFile.slice
Gibt es eine Garantie dafür, dass der Slicing-Vorgang durchgeführt wird, bevor ich versuche, die Daten in jeder Anfrage zu senden? Tut dasFile
Objekt laden Sie die gesamte Datei, wenn es erstellt wird (sicherlich nicht?). TutFile.slice
Suchen Sie die von den Parametern festgelegte Position und lesen Sie dann die Informationen in? Die Dokumentation gibt mir keine Hinweise darauf, wie es implementiert ist.