我使用以下代码使用 GridFs 读取保存在 MongoDB 中的图像文件:
app.get('/picture', function(req, res) {
var readstream = gfs.createReadStream({
filename: 'trooper.jpeg'
});
readstream.on('data', function (data) {
// We got a buffer of data...
var buf2 = new Buffer(data).toString('base64');
res.send(buf2.toString())
console.log(buf2.toString());
console.log(data);
});
readstream.on('end', function () {
// File finished reading...
});
});
console.log(buff.toString());的输出是:
dHJvb3Blci5qcGVn
console.log(data);的输出是:
<Buffer 74 72 6f 6f 70 65 72 2e 6a 70 65 67>
为了显示图像,我这样做了:
<img src="data:image/jpeg;base64,dHJvb3Blci5qcGVn">
我无法从 GridFs MongoDB 读取和显示 html 格式的图像
更新:
我已经尝试过这个:
app.get('/picture', function(req, res) {
res.contentType('image/jpeg');
var readstream = gfs.createReadStream('trooper.jpeg');
readstream.pipe(res);
});
上面的输出是:
最佳答案
除非您确实需要将图像嵌入到页面中,否则请按照 saintedlama 的答案使用管道。
dHJvb3Blci5qcGVn
是 base64 编码的字符串“trooper.jpeg”。请确保您在第一次时正确地将二进制数据保存到 GridFS。
您可以query it directly并检查存储在数据库中的文件的内容。
关于javascript - 显示来自 GridFs (MongoDB) 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34921171/