前言
在做项目的过程中,需要用到文件上传功能,且需要支持单个/批量文件上传,最好是不会进行页面跳转的、局部刷新的异步请求。在查阅的一些资料和实现后,选择了一种相对优雅和简洁的方式。
Maven 导入 JQuery 依赖简化开发
org.webjars
jquery
3.5.1
HTML 代码
请选择要上传的文件:
JS 代码
$("#submit_btn").click(function () {
var formData = new FormData();
var fileobjs = $("#file")[0].files; // $("#file")[0]将jquery对象转换为dom对象,使用jquery的方法.get(0)也可以
for (var i = 0; i < fileobjs.length; i++) {
formData.append("imgs", fileobjs[i]); // append方法使用相同键追加元素,最后会被输出为MultipartFile数组
}
$.ajax({
type: 'post',
url: "/upload",
async: false, // 设置为同步执行
data: formData,
processData : false, // 禁止去处理发送的数据,对data参数进行序列化处理时须设置
contentType : false, // 禁止去设置Content-Ty