rem*_*ion 9 javascript base64 image node.js gridfs
我发现的帖子与我正在寻找的内容很接近,但我无法成功实现我想要的内容.这是一般流程:
var base64data = venue.image.replace(/^data:image\/png;base64,|^data:image\/jpeg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, '');
Run Code Online (Sandbox Code Playgroud)
// generic images route
server.get(version+'/images/:id', function(req, res) {
gridfstore.read( req.params.id, function(error,data) {
res.writeHead(200, {
'Content-Type': 'image/jpeg',
'Content-Length': data.buffer.length
});
res.end(data.buffer);
});
});
Run Code Online (Sandbox Code Playgroud)
基本上,此方法返回存储在GridFS中的Base64字节.我尝试了其他方法,但他们没有返回原始图像.
我想使用以下网址提取图片:
http://[localhost]/1/images/11dbcef0-257b-11e3-97d7-cbbea10abbcb
Run Code Online (Sandbox Code Playgroud)
以下是浏览器跟踪的屏幕截图:

hex*_*ide 15
您可以从MongoDB获取字符串,创建新的缓冲区实例,并在执行此操作时指定编码.结果缓冲区将是二进制数据.
var b64str = /* whatever you fetched from the database */;
var buf = new Buffer(b64str, 'base64');
Run Code Online (Sandbox Code Playgroud)
所以在你的实现中:
server.get(version+'/images/:id', function(req, res) {
gridfstore.read(req.params.id, function(err, data) {
var img = new Buffer(data.buffer, 'base64');
res.writeHead(200, {
'Content-Type': 'image/jpeg',
'Content-Length': img.length
});
res.end(img);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16586 次 |
| 最近记录: |