【问题标题】:Why isn't multer uploading my image with storage option?为什么 multer 不使用存储选项上传我的图像?
【发布时间】:2019-10-01 07:57:01
【问题描述】:

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 记录到控制台时,它会显示正确的信息。当我查看上传文件夹时,没有上传任何内容。

【问题讨论】:

    标签: node.js multer


    【解决方案1】:

    事实证明,我的上传文件夹文件路径需要 ./,而不是 /

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-31
      • 2020-07-05
      • 2018-12-19
      • 2020-12-07
      • 2019-07-22
      • 2016-03-15
      • 2019-04-30
      • 1970-01-01
      相关资源
      最近更新 更多