![](/img/trans.png)
[英]Display on one img src tag normal images on different formats, and base64 images
[英]img tag won't display src base64 from backend
我有來自后端的 base64 圖像格式,我希望它使用 img 標簽顯示在前端
這是代碼
router.get('/image_front/:id', function(req, res){
Delivery.findById(req.params.id, function(err, x){
if(err){
res.send({'error': err})
}else{
let v = 'data:image/png;base64'+', '+ new Buffer.from(x.image_front.data).toString('base64')
res.send(v)
}
})
})
對於前端
<img id="sample" src="/image_front/<%=x._id%>" />
當圖像源激活鏈接時,返回數據:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAKQAAA .. 當我將圖像復制並粘貼到 w3schools 以檢查數據沒有損壞時,它可以工作。 似乎數據有效,但不會使用圖像標簽顯示。 我不知道出了什么問題。
僅當您在 html 中嵌入圖像數據時,才需要 base64 字符串編碼。
要直接將圖像傳遞給客戶端,請返回具有正確內容類型的數據。
router.get('/image_front/:id', function(req, res){
Delivery.findById(req.params.id, function(err, x){
if(err){
res.send({'error': err})
} else {
res.type('png')
res.send(x.image_front.data)
}
})
})
Base64 編碼根本不是您想要的。 只需返回圖像本身。
res.set('Content-Type', 'image/png');
res.end(x.image_front.data);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.