为什么multer不上传带有存储选项的图像?

时间:2019-09-30 23:38:35

标签: node.js multer

Multer能够上传我的文件,但前提是我使用dest选项。当我使用diskStorage时,它不起作用。我确定我做错了,请随时纠正我。这是我的代码...

    const storage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, "/uploads");
  },
  filename: (req, file, cb) => {
    cb(null, Date.now() + "-" + file.originalname);
  }
})

const upload = multer({ storage: storage });


router.post('/signup', upload.single("avatar"), (req, res, next) => {

  console.log(req.file);

  const { heroname, pass, pass2 } = req.body;

  const salt = bcrypt.genSaltSync(12);
  const hashedPassWord = bcrypt.hashSync(pass, salt);

  User.create({
    name: heroname,
    password: hashedPassWord
  })
    .then(() => {
      console.log('Task complete!');
      res.redirect('/')
    })
    .catch((err) => {
      next(err);
    })

});

这是相关的HTML ...

      <div class="form-item">
    <label for="avatar">Choose your Avatar:</label>
    <input id="avatar" name="avatar" type="file" accept="image/*">
  </div>

当我将req.file登录到控制台时,它显示正确的信息。当我查看上载文件夹时,没有任何上载。

1 个答案:

答案 0 :(得分:0)

事实证明,我需要一个./来作为我的上载文件夹文件路径,而不是一个/