在前端使用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 上传多个文件将文件的附件和大小组装到files里面 传到java的Controller循环处理

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

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