提问者:小点点

用multer显示上载的图像


我是NodeJS的新手,我正在使用express、ejs和Multer(处理多部分/表单数据)开发一个项目,以便上传一张图片(单个>>个人资料图片)。我一直试图在一个视图中显示上传的文件(图像),但没有成功。我有关于上传文件(req.file)的所有信息,但我不能用它做任何事情。

//route.js 
   app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
        res.render('image', {
              path: req.file.path
        });
      });



//image.ejs
<section id="upload">
    <img class="uploaded-image" src="<%= path %>" alt="Image name: <%= path %>"/>
  </section>

有人能帮帮我吗。

问候你,多娜


共1个答案

匿名用户

所以这里是解决办法,它对我起作用了!

var storage        = multer.diskStorage({
  destination: function(req, file, cb){
    cb(null, path.join(__dirname, PICTURE_FOLDER));
  },
  filename: function(req, file, cb){
    var filename = Date.now();
    switch (file.mimetype) {
      case 'image/png':
      filename = filename + ".png";
      break;
      case 'image/jpeg':
      filename = filename + ".jpeg";
      break;
      default:
      break;
    }
    cb(null, filename);
  }
});
var upload       = multer({ storage: storage});

app.post('/upload_picture', isLoggedIn, upload.single('file'), function(req, res, next){
    res.render('image', {
      path: req.file.path
    });
});

问候你,多娜