我的Node.js服务器有以下类似的内容:
app.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
});
在这里,data
是一个包含PNG图像的Base64表示的字符串。是否有任何方式可以将其作为图像发送给访问路由的客户端(例如,使URL可用于img
标签中)?
我的Node.js服务器有以下类似的内容:
app.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
});
在这里,data
是一个包含PNG图像的Base64表示的字符串。是否有任何方式可以将其作为图像发送给访问路由的客户端(例如,使URL可用于img
标签中)?
是的,您可以将base64字符串编码并将其作为图像返回给客户端:
server.get("/api/id/:w", function(req, res) {
var data = getIcon(req.params.w);
var img = Buffer.from(data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});
var img = new Buffer(data, 'base64');
- lujcondata
替换了data.buffer
,现在它完美地工作了。 - Hydrothermalnew Buffer(data, 'base64')
现在已经被弃用...应该使用Buffer.from(data, 'base64')
代替。 - drmrbrewerdata:image\/png;base64
),正如@JayCrossler所解释的那样。 - Gkiokan我必须先进行一些操作才能将我的内容格式化正确,但这很有效:
var base64Data = data.replace(/^data:image\/png;base64,/, '');
var base64Data = data.split(',')[1]
。 - preciousbetine使用 "base64-img" 组件:
app.get('/image1', function(req, res) {
var image1 = 'image1.jpg';
var base64Img = require('base64-img');
var imageData1 = base64Img.base64Sync(image1);
var base64Data = imageData1.replace(/^data:image\/(png|jpeg|jpg);base64,/, '');
var img = Buffer.from(base64Data, 'base64');
res.writeHead(200, {
'Content-Type': 'image/png',
'Content-Length': img.length
});
res.end(img);
});