当我尝试使用post方法上传文件时,multer给出的req.file未定义返回。 也许没有按名称获得正确的输入?我真的在黑暗中。 预先感谢您的帮助
//Front-end form
<form action="/dashboard" method="POST" id="newproduct-form" class="row" enctype='multipart/form-data'>
<input type="file" name="productImage" class="form-control-file" id="exampleInputFile">
</form>
//Backend
const mongoose = require('mongoose');
const multer = require('multer');
const path = require('path');
//Set Storage Engine
const storage = multer.diskStorage({
destination: './public/uploads/',
filename: function(req, file, cb){
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});
//Init upload
const upload = multer({
storage: storage
}).single('productImage');
router.post('/dashboard', (req, res) => {
upload(req,res,(err) =>{
if(err) console.log(err);
console.log(req.file);
});
}
答案 0 :(得分:1)
我知道了。我正在使用jQuery ajax。通过执行$(this).ajaxSubmit({ajax content});
而不是$.ajax({ajax content})
,我设法使其正常工作。