使用javascript的方法:
var data = new FormData();
$.each($("input[type='file']")[0].files, function(i, file) {
data.append('file', file);
});
$.ajax({
type: 'POST',
url: '/your/url',
cache: false,
contentType: false,
processData: false,
data : data,
success: function(result){
console.log(result);
},
error: function(err){
console.log(err);
}
})
如果您多次调用 data.append('file', file) 您的请求将包含您的文件数组。
来自 MDN 网络文档:
“接口的append()
方法FormData
将新值附加到对象内部的现有键上FormData
,或者如果它不存在则添加该键FormData.se
。t 和之间的区别在于append()
,如果指定的键已经存在,FormData.set
将覆盖所有现有值新的,而append()
将新值附加到现有值集的末尾。”
我自己使用 node.js 和 multipart handler 中间件 multer 获取数据如下:
router.post('/trip/save', upload.array('file', 10), function(req, res){
// Your array of files is in req.files
}