react / expressjs / multer don not save image



>我将一个文件从"反应拖放区组件"发送到"节点服务器",并尝试使用"multer"上传该文件,但没有显示任何错误,文件没有上传并且req.file/s未定义

var express = require('express');
var router = express.Router();
var msg = require('../helpers/MessageHandler');
var CM = require('../helpers/ContentMessages.json');
var storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, 'public/uploads/');
    },
    filename: function(req, file, cb) {       
        cb(null, Date.now() + file.originalname);
    }
});
var upload = multer({storage: storage}).any();
var path = '/enterprise';
router.post(path, function(req, res, next) {
    var enterprise = req.body.obj;
    console.log(req.body);
    console.log(req.files);
    console.log(req.file);
    
    upload(req, res, function(err) {
        
        if(err) {
             return res.status(500).json(msg.prototype.errorMsg(err));
        } else {
            return     res.status(200).json(msg.prototype.success(CM.message.success.doc_create, null));
        }
    });
});

反应组件是这样的,在获取函数中,我发送了一个包含所有字段的对象

insertObj (values) {
        console.info(values);
  
        const obj = JSON.stringify({obj: values});
        let url = '/api/v1/enterprise';
        const headers = { 'Content-Type': 'application/json', 'Access-Control-Request-Method': '*'};
        const req = new Request(url, {method: 'POST', headers: headers, body: obj});
  
        fetch(req)
            .then((response) => {
                return response.json();
            })
        .then((enterprise) => {
          console.log(enterprise);
        }).catch((error) => {
           console.log(error);
        });
    }

在 multer req.files 中将可见。因此,请将您的代码更改为:

upload(req, res, function(err) {
 var enterprise = req.body.obj;
    console.log(req.body);
console.log(req.files);
console.log(req.file); 
    if(err) {
         return res.status(500).json(msg.prototype.errorMsg(err));
    } else {
        return     res.status(200).json(msg.prototype.success(CM.message.success.doc_create, null));
    }
});

此外,应该有enctype='multipart/form-data',而不是"内容类型":"application/json"。

相关内容

  • 没有找到相关文章

最新更新