我正在使用nodejs-multer将图像文件上传到图像上传目录。上传后,如何在客户端浏览器中以html img标签显示此特定图像。网址是什么?
当我输入时http://localhost:3000/uploads/1591342432.jpeg,它说无法获取文件。
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./uploads/");
},
filename: function (req, file, cb) {
cb(null, Date.now() + ".jpeg");
},
});
const upload = multer({ storage: storage });
router.post("/upload", upload.single("file"), async (req, res) => {
try {
console.log("uploading...");
console.log(req.file.filename);
res.json({ cool: "yes" });
// res.json({ file: req.file });
} catch (error) {
console.log(error);
}
});
我想我需要设置一个静态目录:
app.use(express.static("uploads"));
然后我可以访问图像文件为:
http://localhost:3000/1599134489853.jpeg
您似乎正在使用multer将img上传到一个名为uploads的本地文件夹。
我将推荐以下教程:上传img到firebase
本教程使用multer上传云firebase。上传图像后,您将获得存储在云上的图像链接,以及您可以在其他服务器上使用的相同链接
如果您还没有,那么在尝试通过http://localhost:3000/1599134489853.jpeg
获取时,您需要为图像资源设置GET路径。对于express应用程序,当前返回文件的简单/首选方法似乎是res.sendFile。否则,您可以生成流并返回,如图所示。