gpt4 book ai didi

node.js - 从 CouchDB 获取带有 cradles getAttachment 的二进制文件?

转载 作者:搜寻专家 更新时间:2023-11-01 00:03:25 27 4
gpt4 key购买 nike

我将 png 作为附件上传到 CouchDb 数据库。当我通过 Futon 查看它时,它很好,如果我试图通过支架取回它,它就会损坏。我使用了 crade 附带的 crade-test.js 中的一个片段并对其进行了一些修改:

      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/

最佳答案

您找到的片段用于文本文档(= 基本上是一个字符串)。对于二进制数据(例如图像),您必须在响应对象上设置正确的编码:

stream = client.database('images').getAttachment(req.params.id, filename);
// response is your HTTP response object
stream.on('data', function(chunk) {
return response.write(chunk, "binary");
});
stream.on('end', function() {
return response.end();
});

关于node.js - 从 CouchDB 获取带有 cradles getAttachment 的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6649733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com