JavaScript Conversion entre Blobs et ArrayBuffers


Exemple

JavaScript a deux façons principales de représenter des données binaires dans le navigateur. ArrayBuffers / TypedArrays contient des données binaires mutables (mais de longueur fixe) que vous pouvez manipuler directement. Les blobs contiennent des données binaires immuables accessibles uniquement via l'interface de fichier asynchrone.

Convertir un Blob en un ArrayBuffer (asynchrone)

var blob = new Blob(["\x01\x02\x03\x04"]),
    fileReader = new FileReader(),
    array;

fileReader.onload = function() {
    array = this.result;
    console.log("Array contains", array.byteLength, "bytes.");
};

fileReader.readAsArrayBuffer(blob);
6

Convertir un Blob en un ArrayBuffer utilisant une Promise (asynchrone)

var blob = new Blob(["\x01\x02\x03\x04"]);

var arrayPromise = new Promise(function(resolve) {
    var reader = new FileReader();

    reader.onloadend = function() {
        resolve(reader.result);
    };

    reader.readAsArrayBuffer(blob);
});

arrayPromise.then(function(array) {
    console.log("Array contains", array.byteLength, "bytes.");
});

Convertir un ArrayBuffer ou un tableau typé en un objet Blob

var array = new Uint8Array([0x04, 0x06, 0x07, 0x08]);

var blob = new Blob([array]);