ExpressJS从FormData获取文件

时间:2016-11-03 15:57:58

标签: ajax node.js file express multipartform-data

我是javascript的新蜜蜂, 我想使用AJAX post作为FormData objectroutes上传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 { } }); ,以表达j {{1}},以保存文件在服务器中。我可以从前端发布,但无法从服务器端检索数据。

以下是我尝试过的代码段:

来自客户端代码段的AJAX帖子:

{{1}}

服务器端代码段:

{{1}}

更新 OUT PUT SCREENSHOT Output sceenshot

所以我想知道如何检索从后端请求对象发布的数据。我想在不使用任何其他包的情况下这样做。

许多人感谢您的帮助和帮助建议。

1 个答案:

答案 0 :(得分: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 
})