在前端使用 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 中处理每个文件。

jQuery 多文件上传:组装文件信息并传送到 Java Controller

原文地址: https://www.cveoy.top/t/topic/p6Id 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录