Как получить req.file из формы запроса данных в узле - PullRequest
0 голосов
/ 09 января 2019

У меня есть два API, я хочу отправить файл из первого API, используя request и formData.

Как получить 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

1 Ответ

0 голосов
/ 09 января 2019

Вам необходимо использовать multipart/form-data в качестве типа контента для загрузки файлов и функции формы из модуля requests. Взгляните на этот ответ .

...