簡體   English   中英

如何使multer將文件保存在文件夾中?

[英]How do you make multer save the file in a folder?

我無法使用multer將照片保存在文件夾中。 該文件的路徑將被上載到mlab(工作正常),但是它應該從我想要從中獲取圖像的文件夾中獲取圖像,這只是不保存。 嘗試從視圖中查看它時,由於圖片不存在於文件夾中,因此會引發404錯誤。 這是我的服務器端控制器:

var multer = require('multer');

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, './modules/articles/client/img/'); // where to store it
  },
  filename: function (req, file, cb) {
    if(!file.originalname.match(/\.(png|jpg|jpeg|pdf|gif)$/)) {
      var err = new Error();
      err.code = 'filetype'; // to check on file type
      return cb(err);
    } else {
      var day = new Date();
      var d = day.getDay();
      var h = day.getHours();
      var fileNamee = d + '_' + h + '_' + file.originalname;
      console.log("filename produced is: " + fileNamee);
      cb(null, fileNamee);
    }
  }
});

var upload = multer({
  storage: storage,
  limits: { fileSize: 20971520 } // Max file size: 20MB
}).single('myfile'); // name in form

exports.uploads = function (req, res) {
  upload(req, res, function (err) {
    if (err) {
      if (err.code === 'LIMIT_FILE_SIZE') {
        res.json({ success: false, message: 'File size is too large. Max limit is 20MB' });
      } else if (err.code === 'filetype') {
        res.json({ success: false, message: 'File type is invalid. Accepted types are .png/.jpg/.jpeg/.pdf' });
      } else {
        console.log('err = ' + err);
        res.json({ success: false, message: 'File was not able to be uploaded' });
      }
    } else {
      if (!req.file) {
        var article = new Article(req.body);
        article.user = req.user;

        article.save(function (err) {
          if (err) {
            return res.status(400).send({
              message: errorHandler.getErrorMessage(err)
            });
          } else {
            res.jsonp(article);
          }
        });
      }
      else if (req.file) {
        res.json({ success: true, message: 'File was uploaded!' });
      }

    }
    // Everything went fine
  });
};

該代碼工作正常。 檢查您的文件夾權限。 確保服務器能夠寫入文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM