Node.js-req.file返回未定义

时间:2019-07-23 14:26:22

标签: node.js express file-upload multer

当我尝试使用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);
    });
}

1 个答案:

答案 0 :(得分:1)

我知道了。我正在使用jQuery ajax。通过执行$(this).ajaxSubmit({ajax content});而不是$.ajax({ajax content}),我设法使其正常工作。