Hochgeladene Datei in den Speicher einlesen mit reinem Javascript

English Deutsch

Du hast ein File-Objekt in Javascript (z.B. aus einem Drag-&-Drop-Upload oder einem <input type="file">), das du im Browser in den Speicher einlesen möchtest. Du möchtest dafür keine Bibliothek verwenden, sondern eine reine Javascript-Lösung bevorzugen.

Lösung

Verwende diese Funktion:

read_file_into_memory.js
/**
 * Hilfsfunktion zum Einlesen einer gesamten Datei in den Speicher.
 *
 * Der Handler erhält ein Array von Objekten:
 * {
 *     name: Dateiname als String,
 *     size: Größe in Bytes als Zahl,
 *     type: MIME-Typ als String,
 *     content: Dateiinhalt als Uint8Array
 * }
 * @param file Die einzulesende Datei
 * @param handler
 */
function readFileIntoMemory (file, callback) {
    var reader = new FileReader();
    reader.onload = function () {
        callback({
            name: file.name,
            size: file.size,
            type: file.type,
            content: new Uint8Array(this.result)
         });
    };
    reader.readAsArrayBuffer(file);
}

Verwendungsbeispiel:

read_file_into_memory_usage.js
// Verwendungsbeispiel
readFileIntoMemory(file, function(fileInfo) {
    console.info("Read file " + fileInfo.name + " of size " + fileInfo.size);
    // Du kannst fileInfo.content, welches ein Uint8Array ist, hier verwenden
});

Check out similar posts by category: Javascript