jquery 上传多个文件将文件的附件和大小组装到files里面 传到java的Controller循环处理
在前端使用jQuery实现上传多个文件的功能,可以使用HTML5的<input type="file">元素,通过设置multiple属性来允许选择多个文件。然后使用JavaScript来监听文件选择事件,获取选择的文件信息并组装成一个数组,再将该数组作为数据传递给Java的Controller。
以下是一个示例代码:
HTML代码:
<input type="file" id="fileInput" multiple>
<button id="uploadBtn">上传</button>
JavaScript代码:
$(document).ready(function() {
$("#uploadBtn").click(function() {
var files = $("#fileInput")[0].files;
var formData = new FormData();
for (var i = 0; i < files.length; i++) {
formData.append("files", files[i]);
}
$.ajax({
url: "your_controller_url",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(response) {
// 处理上传成功后的逻辑
},
error: function(xhr, status, error) {
// 处理上传失败后的逻辑
}
});
});
});
在上述代码中,我们使用FormData对象来创建一个表单数据对象,并使用append方法将每个文件添加到该对象中。然后使用ajax方法将该表单数据对象作为数据发送到Java的Controller。
在Java的Controller中,你可以通过接收一个MultipartFile[]类型的参数来接收这些文件。然后可以使用循环遍历该数组来逐个处理每个文件。
例如:
@PostMapping("/upload")
public String handleFileUpload(@RequestParam("files") MultipartFile[] files) {
for (MultipartFile file : files) {
// 处理每个文件的逻辑
String fileName = file.getOriginalFilename();
long fileSize = file.getSize();
// 其他处理逻辑...
}
return "success";
}
在上述示例代码中,@RequestParam("files") MultipartFile[] files表示接收名为"files"的文件数组。
通过以上代码,你可以实现在前端使用jQuery上传多个文件,并将文件的附件和大小组装到files数组中,然后通过循环的方式在Java的Controller中处理每个文件
原文地址: https://www.cveoy.top/t/topic/ioSn 著作权归作者所有。请勿转载和采集!