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.sliceGibt 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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage