使用FormData处理表单中多个File文件的传输

2019/03/26 Tech

概述

工作中涉及到多个 input 为 file 类型的文件传到后台处理。

解决思路

html 表单如下结构

<form id="form" enctype="multipart/form-data">
    <input type="file" name="attachment">
    <input type="file" name="attachment">
    <input type="file" name="attachment">
</form>

js 代码如下,此处使用 jQuery 的 ajax 请求

$.ajax({
    url: 'save',
    type: 'post',
    contentType: false,
    data: new FormData($('#form')[0]),
    success: function(result) {
    },
    error: function(err) {
    }
})

不使用 jQuery 处理以上代码

let formData = new FormData(document.querySelector('#form'))
let request = new XMLHttpRequest();
request.open('POST', 'url')
request.send(formData)

java(springMVC) 的 controller 代码如下

@RequestMapping(value = "save", method = RequestMethod.POST)
public @ResponseBody Object save(MultipartFile attachment
, HttpServletRequest request) throws Exception {
    /* attachment 为 input 的 name,这样就可以获取所有文件的数组了。*/
    return results;
}

Search

    Table of Contents