3
HTML5 파일 Api (현재 알파로 표시) [0]을 라이브러리로 구축하여 이진 내용으로 작동하도록하고 문자 세트에 문제가 없는지 확인합니다. , 나는 Buffer [1] 유틸리티를 사용하고있다.HTML5 BLOB 객체에서 base64 인코딩을 사용하는 방법
그러나 HTML5 File API는 Blob 네이티브 개체를 사용합니다. 사실 저는 'application/octet-stream'유형과 'Buffer encoding'에서 'binary'유형을 사용하고 있습니다. 그러나, 나는 어떤 문제를 방지하기 위해 64 기수를 사용하려면 :
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));
});
});
});
};
가 Exacts :
var blob = new Blob([data.toString('binary')], {type: 'application/octet-stream'});
은 내가 MDN 페이지 [2] 빨간색하지만 난 인코딩에 대해 아무것도 보지 않았다.
처럼 뭔가?
var blob = new Blob([data.toString('base64')], {type: 'application/octet-stream', encoding: 'base64'});
감사합니다를 달성 할 수있는 방법이 있습니까.
이진 데이터를 파일에 쓰는 것이 목적이라면 문자열 대신 바이트 배열을 사용해야합니다. – Musa
글쎄, Buffer 객체가 Int8Array라는 것을 깨달았습니다 : D – Exos