1

我正在尝试在 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');
        });
    });

图像作为文件名成功插入到集合中,并存储在磁盘空间中。当我尝试通过写入来获取图像时:

<img src="./routes/uploads/<%= blogdata.img%>" />

在我的视图页面中,图像不存在。我转向该页面的视图源代码并显示完整路径,即

<img src="./routes/uploads/1459772396796.jpg">
4

1 回答 1

1

显示您定义用于上传的路由/静态文件的代码。相对路径没有作为 url 的意义,通常您的 URL 不会包含routes任何一个,所以页面源应该说/uploads/1459772396796.jpg.

根据您的评论,您有两个静态目录,不确定您是否可以这样做,但无论我说的路径不包括该routes部分。

于 2016-04-05T05:26:21.217 回答