如何使用gridfs将图像上传到MongoDB?

时间:2019-09-09 07:37:58

标签: arrays node.js mongodb gridfs

我的应用程序可以上传单个图像。但是我想在我的MongoDB中上传多个图像,我找不到解决方案。...

我尝试更改自己的html帖子标记,考虑上传。但是我不知道如何在路由过程中放入数组。

这是我的html标记。

<form action="/upload" method="post" enctype="multipart/form-data">
  <!-- image preview -->
      <div>
          <span>
              <h3>Upload your images</h3>
              <input type="file" id="files" name="photo" value="files" multiple />
              <input type="text" name="caption" value="">
          </span>
      </div>
      <div>
          <input type="submit"  value="submit">
      </div>
</form>

,我试图更改此设置。将标签的名称照片输入到照片[]。

<form action="/upload" method="post" enctype="multipart/form-data">
  <!-- image preview -->
      <div>
          <span>
              <h3>Upload your images</h3>
              <input type="file" id="files" name="photo[]" value="files" multiple />
              <input type="text" name="caption" value="">
          </span>
      </div>
      <div>
          <input type="submit"  value="submit">
      </div>
</form>

这是我的multer上传代码。

const upload =  multer({
storage: storageEngine,
limits: { fileSize:200000 },
fileFilter: function(req, file, callback){
validateFile(file, callback);
}
}).single('photo');

,我试图更改此设置。 multer.array('photo []')

但是它永远都行不通。这是路线代码

router.post('/upload', function(req, res) {

console.log(req.body);

upload(req, res,(error) => {
//console.log(req.file.length());
  console.log(req.body);
  console.log(req.file);
  if(error){
     res.redirect('/?msg=3');
  }else{
    if(req.file == undefined){

      res.redirect('/?msg=2');

    }else{

        /**
         * Create new record in mongoDB
         */
        var fullPath = "files/"+req.file.filename;

        var document = {
          path:     fullPath,
          caption:   req.body.caption
        };

      var photo = new Photo(document);
      photo.save(function(error){
        if(error){
          throw error;
        }
        res.redirect('/?msg=1');
     });
  }
}
});
});

这是猫鼬模式。

var photoSchema = new Schema({

path:  { type: String },
caption: { type: String }
});

感谢您的帮助!

0 个答案:

没有答案