Wie verwenden Sie base64-Codierung in HTML5 Blob-Objekt

Ich Baue eine Bibliothek auf "nodeize" die HTML5-Datei-Api (derzeit noch in der alpha)[0], um es arbeiten mit dem binären Inhalt haben und keine Probleme mit charsets, ich bin mit Puffer[1] - Dienstprogramm.

Aber die HTML5-Datei-API nutzt die Blob-native-Objekt. Eigentlich bin ich mit dem Typ "application/octet-stream' und 'Binär' aus Puffer-Codierung. Aber, ich möchte base64-um zu verhindern, dass irgendein problem:

CoFS.prototype.writeFile = function (fileName, data, encoding, callback) {

    var self = this;

    if (Buffer.isBuffer(data)) {
        callback = encoding;
        encoding = undefined;
    } else {
        data = new Buffer(data, encoding);
    }

    this._ifready(function () {

        self.getFileEntry(fileName, {create: true, exclusive: true}, function (err, fileEntry) {

            if (err) return callback(new Error("Error getting file access " + err.message));

            fileEntry.createWriter(function(fileWriter) {

                fileWriter.onwriteend = function () {
                    callback(null);
                };

                fileWriter.onerror = function(e) {
                    callback(new Error(e.toString()));
                };

                var blob = new Blob([data.toString('binary')], {type: 'application/octet-stream'});

                fileWriter.write(blob);

            }, function () {
                callback(new Error('Error writing ' + fileName));
            }); 
        });

    });

};

Zumutet auf:

var blob = new Blob([data.toString('binary')], {type: 'application/octet-stream'});

Ich red die MDN-Seite[2], aber ich nicht sehen, etwas über die Codierung.

Gibt es eine Möglichkeit, etwas zu erreichen wie der?:

var blob = new Blob([data.toString('base64')], {type: 'application/octet-stream', encoding: 'base64'});

Danke.

  • Wenn Ihr Ziel ist zu schreiben von Binärdaten in eine Datei, die Sie verwenden sollten ein byte array statt als string zu haben.
  • Nun, ich erkannte, dass das Puffer-Objekt ist ein Int8Array 😀
InformationsquelleAutor Exos | 2015-01-19
Schreibe einen Kommentar