【问题标题】:How to receive req.file from request form-data in node如何从节点中的请求表单数据接收 req.file
【发布时间】:2019-01-10 03:02:00
【问题描述】:

我有两个 api,我想使用 request 和 formData 从第一个 api 发送文件。

如何从请求表单数据中接收 req.file ?

接收端代码

var storage = multer.diskStorage({
destination: function (req, file, cb) {
    mkdirp(configServer.dataDir+ "/tmp", function(err){
       cb(null, configServer.dataDir+ "/tmp/")
    })
},
filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
}

})

var upload = multer({ storage: storage }).single('file');

exports.upload_in_server = function (req, res) {

upload(req, res, function (err) {

     console.log("file : ", req.file)
     console.log("body : ", req.body)
     res.json({success: true})


})

}

router.post("/myurl/uploadInServer",  UserController.upload_in_server);

发送侧码

  var storage2 = multer.diskStorage({
    destination: function (req, file, cb) {
        mkdirp(config.dataDir+ "/tmp", function(err){
            cb(null, config.dataDir+ "/tmp/")
        })
    },
    filename: function (req, file, cb) {
         cb(null, file.fieldname + '-' + Date.now())
    }
})

var upload2 = multer({ storage: storage2 }).single('file');

exports.user_coffre_fort_create_file2 = function (req, res) {

    upload2(req, res, function (err) {
        var obj = {

            'Nom': "Lagaf",
            'Prénom': "Vincent",
            'Date de naissance': "13/01/1960",
            'file':new Buffer(fs.readFileSync(req.file.path)).toString("base64")
     }

         request({
            url: "/myurl/uploadInServer",
            method: 'POST',
            formData: obj,
            headers: {"Content-Type": "application/x-www-form-urlencoded", "Authorization": token}
         }, function (err, stdout, body) {
           res.json({success:true})
        })
      })
}

这是我收到的 req.file 为空,我在正文中收到了文件

如何接收req.file中的文件?

提前致谢

  file : undefined

    body :  {
  'Nom: 'Lagaf',
   'Prénom': 'Vincent',
  'Date de naissance': '13/01/1960',
  file:/9j/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABtbnRyUkdCIFhZWiAH3AABABkAA

【问题讨论】:

    标签: node.js request multer form-data


    【解决方案1】:

    您需要使用multipart/form-data 作为从requests 模块上传文件和表单功能的内容类型。看看this answer

    【讨论】:

    • 同样的事情:multipart/form-data,req.file 未定义
    猜你喜欢
    • 2019-12-22
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多