[英]Return image binary data from api and display on html
我將圖像存儲在mongodb數據庫中。 我想顯示從Express api獲得的響應作為客戶端上的圖像。 圖片來源看起來像這樣
src="/image/data/5a44dde172aa021d107e7d33"
而且我發回這樣的數據。 當我將圖像網址寫入瀏覽器時,它什么也沒有顯示。
var imgId = req.params.id;
imageModel.findById(imgId)
.then((img) => {
res.status(200).send(img.data);
})
.catch((exc) => {
res.status(400).send();
});
我這樣上傳文件。
router.post("/", upload.any(), (req, res) => {
if (req.files && req.files.length > 0) {
for (var i = 0; i < req.files.length; i++) {
var file = req.files[i];
var image = new imageModel({ data: file.buffer.toString(), name: file.fieldname, createdBy: req.user.id });
image.save(function (err, img) {
if (err)
res.status(400).send(err);
else
res.status(200).send(response.create(img));
});
}
}
});
我究竟做錯了什么?
我通過改變解決了這個問題
file.buffer.toString()
至
file.buffer.toString('binary')
文件上傳代碼和
res.status(200).send(img.data)
至
res.status(200).contentType("image/jpeg").send(new Buffer(img.data.toString(), 'binary'))
在獲取api方法上。 它按我的預期工作,圖像現在可以顯示在頁面上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.