2016-11-03 23 views
0

獲取文件我是新蜂ExpressJS, 我想從javascript上傳file和一些data,使用AJAX post作爲FormData object,以表達JS routes,將文件保存在服務器上。我能夠從前端發佈,但無法從服務器端檢索數據。ExpressJS從FORMDATA

以下是代碼片段我想:

var files = []; 
    $('#upload').on('change',function(){ 
     var form_data = new FormData(); 
     form_data.append('file_uplaoded',$('#upload')[0].files[0]); 
     form_data.append('name1',"10000900055"); 
     form_data.append('name2',"10000900044"); 
     form_data.append('name3',"10000900033"); 
     form_data.append('name4',"10000900022"); 
     form_data.append('name5',"10000900011"); 
     console.log(form_data); 
     $.ajax({ 
      type: "POST", 
      url: '/ulploadfile', 
      data: form_data, 
      cache: false, 
      processData: false, 
      contentType: false, 
      success: function(data){ 
       alert('success'); 
      } 
      // dataType: 'json', 
      // contentType: "application/json; charset=utf-8" 
     }).done(function(data) { 
      // alert('success1'); 
     }); 
    }); 

服務器端代碼片段:

router.post('/ulploadfile', function(req, res, next) { 
    var body = ''; 
    try { 
     req.on('data', function (data) { 
      body += data; 
     }); 
     req.on('end', function() { 
      var post = qs.parse(body); 
      console.log(post); 
      res.send("UPLOADING FILE RESPONSE"); 
     }); 
    } catch (e) { 
     console.log(e); 
     res.send("UPLOADING FILE RESPONSE ERRPR"); 
    } finally { 
    } 
}); 

UPDATE OUT PUT屏幕截圖來自客戶端的代碼片段

AJAX後 Output sceenshot

所以我想知道如何檢索從後端請求對象發佈的數據。我想這樣做,而不使用任何其他軟件包。

很多非常感謝您的幫助&的建議。

+0

得到它通過https://www.npmjs.com/package/express-fileupload解決 – Dipak

回答

1

有在POST請求的文件(多數據)良好的模塊,稱爲multer

您可以添加有驗證功能,目的地,不同的存儲... 甚至有插件multer-s3爲,使用作爲存儲。

router.post('/ulploadfile', upload.single('file_uplaoded'), function(req, res, next) { 
 
    // req.file is the `file_uplaoded` file 
 
    // req.body will hold the text fields, if there were any 
 
})

+0

謝謝,我用強大的包裝解決它。 – Dipak