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登录到控制台时,它显示正确的信息。当我查看上载文件夹时,没有任何上载。
答案 0 :(得分:0)
事实证明,我需要一个./
来作为我的上载文件夹文件路径,而不是一个/
。