使用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 处理程序中间件 multer 获取数据如下:
router.post('/trip/save', upload.array('file', 10), function(req, res){
// Your array of files is in req.files
}