jQuery 多文件上传:组装文件信息并传送到 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/p6Id 著作权归作者所有。请勿转载和采集!