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



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

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

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

最新更新