我已经找到了一些与我所需内容相近的帖子,但是我无法成功地实现我想要的功能。这是一般的流程:
- 提交带有场馆其余数据的照片,作为base64数据
- 如果存在数据前缀,则剥离该前缀,以便我只有图像的base64数据
var base64data = venue.image.replace(/^data:image\/png;base64,|^data:image\/jpeg;base64,|^data:image\/jpg;base64,|^data:image\/bmp;base64,/, '');
- 使用MongoDB的GridFS(我正在使用gridfstore)存储Base64数据
- 然后,我想通过URL请求以原始图像文件的形式检索图像。
// 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);
});
});
基本上,此方法返回存储在GridFS中的Base64字节。我尝试了其他方法,但它们不会返回原始图像。
我想使用像这样的URL来获取图像:
http://[localhost]/1/images/11dbcef0-257b-11e3-97d7-cbbea10abbcb
这是浏览器跟踪的截图: