首页 > 解决方案 > Nodejs - req.file 返回未定义

问题描述

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

标签: node.jsexpressfile-uploadmulter

解决方案


我想到了。我正在使用jQuery ajax。通过做$(this).ajaxSubmit({ajax content});而不是$.ajax({ajax content})我设法使它工作。


推荐阅读