Multer存储不会在服务器目录上上传文件

时间:2018-03-24 16:01:19

标签: node.js express upload multer

Multer没有上传源代码下面的服务器目录上的文件来上传文件。创建文件对象,这意味着当我记录 req.files 文件但没有上传到directory.im时使用POSTMAN进行API测试通过 formdata-> uploadfiles 发送文件没有调用关键“uploadfiles” 定义函数,因为l og in function 不是控制台名称“Hello”

const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        console.log("Hello Umesh");
        cb(null, '../resources/uploads'); // Absolute path. Folder must exist, will not be created for you.
      },
      filename: function (req, file, cb) {
        console.log("Hello Umesh");
        cb(null, file.fieldname + '-' + Date.now());
      }
});

const upload = multer({
                         storage: storage,
                         limit:{filesize:10}

                    }).single('uploadfiles');

router.post('/save', function (req, res) { 
    upload(req, res, function (err) {
        if (err) {
            res.json({
                success: false,
                message:err
            });
        }
        else{
        res.json({
            success: true,
            message: req.file
        });
    }
    })
});

source code files are inside routes this is log result when req.files

1 个答案:

答案 0 :(得分:0)

尝试使用存储位置的绝对路径:

cb(null, require('path').join(__dirname, '..', 'resources', 'uploads')); 

代替:

cb(null, '../resources/uploads');

更新

由于fs模块中函数的工作目录是项目的根文件夹(如果使用npm start命令运行项目),您只需使用:

cb(null, 'resources/uploads');