0

I have two apis, I want to send a file from the first api using request and formData.

How to receive req.file from request form-data ?

Receive side code

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);

Send side code

  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})
        })
      })
}

This is what I receive the req.file is null, and i received the file in the body

How to recevie the file in the req.file ?

Thanks in advance

  file : undefined

    body :  {
  'Nom: 'Lagaf',
   'Prénom': 'Vincent',
  'Date de naissance': '13/01/1960',
  file:/9j/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABtbnRyUkdCIFhZWiAH3AABABkAA
user2285831
  • 419
  • 1
  • 5
  • 18

1 Answers1

0

You need to use multipart/form-data as content type for uploading files and form feature from requests module. Take a look at this answer.

mugiseyebrows
  • 4,138
  • 1
  • 14
  • 15