3
CouchDbデータベースに添付ファイルとしてpngをアップロードしました。ふとんで見るとうまくいきますが、クレードルで戻してみると壊れてしまいます。私はcradeに同梱crade-test.jsからsnipptletを使用し、それを少し修飾:CouchDBからクレードルgetAttachmentを使用してバイナリファイルを取得するには?
var response = {};
var streamer = db.getAttachment(data.id,filename);
streamer.addListener('response', function (res) {
response.headers = res.headers;
response.headers.status = res.statusCode;
response.body = "";
});
streamer.addListener('data', function (chunk) { response.body += chunk; });
streamer.addListener('end', function() {
fs.writeFile('new-'+filename, response.body, function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
});
結果が入力よりも大きい破損PNGです。ここに実例を示しました:http://jsfiddle.net/x8GZc/
おかげで、私はfs.createWriteStreamオブジェクトを必要と私の場合: は、バイナリデータ(例えば画像)に対しては、レスポンス・オブジェクトに正しいエンコーディングを設定する必要があります。 http://jsfiddle.net/x8GZc/1/ – Nico
それがあなたを助けたら私の答えを承認するといいと思います。 –