我试图提供我存储在一个蒙古族文档中的图像。我用的是快递,快递资源和猫鼬。
数据是一个JPG,存储在我的模式中的一个缓冲区字段中。看上去是正确的,因为我可以用cli读取数据。
然后我运行一个发现,抓住领域,并试图发送它。见代码:
res.contentType('jpg');
res.send(img);我不认为这是存储问题,因为我在这里执行相同的操作:
var img = fs.readFileSync(
__dirname + '/../../img/small.jpg'
);
res.contentType('jpg');
res.send(img);在浏览器中,图像会出现(作为一个破损的图标)。
我想知道这是否是快递资源的问题,因为我的格式设置为json,但是在发送数据之前,我确实要重写内容类型。
抓头
发布于 2013-05-19 13:47:11
我自己解决了这个问题。似乎我使用了正确的方法从express发送数据,但没有正确地存储它(棘手!)
对于任何处理图像下载并在缓冲区中管理它们的人,下面是一些使用请求包的示例代码:
request(
{
uri: uri,
encoding: 'binary'
},
function (err, response, body)
{
if (! err && response.statusCode == 200)
{
var imgData = new Buffer(
body.toString(),
'binary'
).toString('base64');
callback(null, new Buffer(imgData, 'base64'));
}
}
);在Mongo中,需要设置一个带有缓冲区类型的文档属性,才能成功地存储它。似乎这个问题是因为我把它保存到了蒙戈。
希望这能在未来节省一些时间。=)
https://stackoverflow.com/questions/16601161
复制相似问题