我需要通过邮件发送动态增长的文件数组。除此之外,我需要将两个输入的值一起发送。代码工作,但如果我通过data.append(“input1”,input1)添加更多;在发出ajax请求时我没有收到。 有什么办法吗?因为我没有看到如何做到这一点。我使用的是春天1.5.7和百里香。
@PostMapping("/upload/multi")
@ResponseBody
public ResponseEntity<?> multiUploadFileModel(@RequestBody MultipartFile[] file) {
return new ResponseEntity<Object>("Successfully uploaded!", HttpStatus.OK);
}
//我的JS可以在不附加其他数据的情况下工作。
function ajaxSubmit() {
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
var data = new FormData();
var input1 = $('#input1').val();
var input2 = $('#input2').val();
$.each(files,function(i,file){
data.append('file', file);
})
$.ajax({
data: data,
beforeSend: function(xhr) {
xhr.setRequestHeader(header, token);
},
cache: false,
contentType: false,
processData: false,
type: 'POST',
enctype: 'multipart/form-data',
url: "/upload/multi",
success: function (data) {
console.log(data);
},
error:function (xhr, ajaxOptions, thrownError){
if(xhr.status==404) {
console.log(thrownError);
}
}
});
}
答案 0 :(得分:0)
你应该使用@RequestParam代替@RequestBody ..
@PostMapping("/upload/multi")
@ResponseBody
public ResponseEntity<?> multiUploadFileModel(@RequestParam("file") MultipartFile[] file, @RequestParam("input1") String input1, @RequestParam("input2") String input2) {
return new ResponseEntity<Object>("Successfully uploaded!", HttpStatus.OK);
}
如果input1和input2不是字符串,则将其更改为更正类型。