我正在研究一個使用ExpressJS作爲Web服務器的Node.JS應用程序。以Base64編碼圖像並以ExpressJS作爲圖像發送
我想設置一條路徑/get/thumbnail/by_guid/:guid
,它將圖像作爲實際圖像返回,而不是base64字符串,因此我可以使用<img src="/get/thumbnail/by_guid/ABCD" >
設置圖像標記的來源,並顯示實際圖像。
我將縮略圖存儲爲數據庫中的BLOB並檢索它們。當我檢索它們時,它們在我的節點應用程序中成爲緩衝區。然後我發送這些緩衝區到我的路由中,如下所示,其中img
是包含圖像的緩衝區對象。
router.get('/get/thumbnail/by_guid/:guid', function(req, res){
image_helper.guidToImage(req.params.guid).then(function(img){
res.set('Content-Type', 'image/jpeg');
res.set('Content-Length', img.length);
res.end(img, 'latin1');
}, function(err){
res.err(err);
});
});
guidToImage
將圖像作爲緩衝區返回。
當我去的,我知道在縮略圖描述的URL,例如,/get/thumbnail/by_guid/ABCD
,我看到一個白色的盒子是這樣的:
當我看到在Chrome瀏覽器開發的網絡選項卡工具,要求是這樣的:
的反應只是表明我的base64字符串:
而且圖像顯示,當我採購它作爲破:
我如何能實現我想要做什麼?
我花了6個小時試圖現在就開始工作。
感謝您的幫助。
如何在HTML中顯示圖像? – Jorg
@Jorg跟我貼的一模一樣:'' – user2172205
噢,對不起。如果源代碼爲base64,則需要指定:'src =「data:image/png; base64,[base64 code] ...' – Jorg