我是javascript
的新蜜蜂,
我想使用AJAX post
作为FormData object
从routes
上传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}}
所以我想知道如何检索从后端请求对象发布的数据。我想在不使用任何其他包的情况下这样做。
许多人感谢您的帮助和帮助建议。
答案 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
})