如何读取存储在 mongodb 中的图像并在 nodejs 中显示
how to read image stored in mongodb and display in nodejs
我正在制作一个显示存储在服务器上的图片的 nodejs 应用程序,我使用 multer 将图片存储在同一目录中,我使用 mongodb 作为我的数据库来存储用户图片的路径上传,然后我读取路径并显示类似这样的图片,
<div class="post-image flex">
<%var imagesource='../'+postobj.blob.path%>
<div>
<img class='onbottomimage' src="<%=imagesource%>" >
</div>
</div>
本地一切正常。
但是现在我已经将我的应用程序部署到 heroku 并发现我无法在用户上传图片时将图片存储在 heroku 上,我仍然将图片以 base 64 格式存储在 mongodb 中,类似于这样
image
:
Binary('/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/+EUI0V4aWYAAE1NACoAAAAIAAcBMgACAAAAFAAAAGIBOwACAAAA...', 0)
我如何将它们转换回图片并在 ejs 中的 img 标签中显示它们,或者我有什么其他选择,我不想更改 heroku 但仍然能够显示用户上传的图片。
我认为更好的解决方案是使用第三方存储提供商,例如 aws s3,并且只在数据库中存储图像 url
如果您将上传的图片存储在 Heroku 服务器中,那完全是一种浪费。因为 Heroku Dyno 每天都会重启,这将删除除部署期间存储的数据之外的所有额外添加的数据。
我觉得你用的是快递。
let fs=require("fs")
let yourBuffer=//retrieve that buffer and store into this(yourBuffer) variable
let buffer = new Buffer.from(yourBuffer)
fs.writeFile(`location to storeimage/imagename.yourimageextension`, buffer, "binary", function (err, written) {
if (err) console.log(err);
else {
console.log("Successfully written");
res.sendFile((__dirname + `location of image/imagename.yourimageextension`))
}
});
我正在制作一个显示存储在服务器上的图片的 nodejs 应用程序,我使用 multer 将图片存储在同一目录中,我使用 mongodb 作为我的数据库来存储用户图片的路径上传,然后我读取路径并显示类似这样的图片,
<div class="post-image flex">
<%var imagesource='../'+postobj.blob.path%>
<div>
<img class='onbottomimage' src="<%=imagesource%>" >
</div>
</div>
本地一切正常。 但是现在我已经将我的应用程序部署到 heroku 并发现我无法在用户上传图片时将图片存储在 heroku 上,我仍然将图片以 base 64 格式存储在 mongodb 中,类似于这样
image
:
Binary('/9j/4AAQSkZJRgABAgEAYABgAAD/7gAOQWRvYmUAZAAAAAAB/+EUI0V4aWYAAE1NACoAAAAIAAcBMgACAAAAFAAAAGIBOwACAAAA...', 0)
我如何将它们转换回图片并在 ejs 中的 img 标签中显示它们,或者我有什么其他选择,我不想更改 heroku 但仍然能够显示用户上传的图片。
我认为更好的解决方案是使用第三方存储提供商,例如 aws s3,并且只在数据库中存储图像 url
如果您将上传的图片存储在 Heroku 服务器中,那完全是一种浪费。因为 Heroku Dyno 每天都会重启,这将删除除部署期间存储的数据之外的所有额外添加的数据。 我觉得你用的是快递。
let fs=require("fs")
let yourBuffer=//retrieve that buffer and store into this(yourBuffer) variable
let buffer = new Buffer.from(yourBuffer)
fs.writeFile(`location to storeimage/imagename.yourimageextension`, buffer, "binary", function (err, written) {
if (err) console.log(err);
else {
console.log("Successfully written");
res.sendFile((__dirname + `location of image/imagename.yourimageextension`))
}
});