我正在尝试在mongodb中插入图像,然后我想在ejs模板中获取并显示图像。
我的代码:
index.js
var uploadDir=__dirname+'/uploads';
var images=Date.now()+'.jpg';
var storage=multer.diskStorage({
destination:function(request, file, callback){
callback(null, uploadDir);
},
filename:function(request, file, callback){
console.log(file);
callback(null, images);
}
});
var upload=multer({storage:storage}).single('photo');
/*============== blog Insert============*/
router.post('/add', upload, function(req, res, next){
new blogs({
title: req.body.title,
description:req.body.description,
categories:req.body.category,
img:images,
date:Date.now()
}).save(function(err, doc){
res.send('Inserted');
});
});
Image已成功作为文件名插入到集合中,并存储在磁盘空间中。 当我尝试通过写入来获取图像时:
<img src="./routes/uploads/<%= blogdata.img%>" />
在我的视图页面中没有图像。我转向该页面的viewsouce代码并显示完整路径,即
<img src="./routes/uploads/1459772396796.jpg">
答案 0 :(得分:1)
显示您为上传服务定义路由/静态文件的代码。相对路径并不具有网址含义,通常您的网址也不会包含routes
,因此网页来源应该说/uploads/1459772396796.jpg
。
根据你的评论你有两个静态目录,不确定你能做到这一点,但无论我说的路径不包括routes
部分。