正在获取nodejs中上传的图像url



我正在使用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。否则,您可以生成流并返回,如图所示。

最新更新