前言
后台开发被迫写jsp,ajax批量上传文件搞了两天
下面上代码
前端
1.参数处理
var formData = new FormData();
var files = $("#input[type='file']"); var remarks= $("#input[name='remark']");
for (var i = 0; i < files.length; i++) { var remark= remarks[i].value;//注意:这里append进去的是File对象,而不是FileList对象 formData.append("attachment", files[i].files[0]); formData.append("remark",remark); }
2.发送ajax请求
$.ajax({ url: "/xxx", type: "post", data: formData, processData: false, contentType: false, success: function (data) { }, });
后台
@RequestMapping(value = "/xxx" , method = RequestMethod.POST) @ResponseBody public APIResult<Boolean> xxx(@RequestParam("attachment")MultipartFile[] attachment,@RequestParam("remarks") List<String> remarks){ for (int i=0;i<attachment.size();i++) { MultipartFile uploadFile =attachment[i]; ...... } }
Controller层用两个参数 分别接收formData中的两个属性
注意加红部分:亲测可用