SpringBoot中实现批量文件上传
场景
项目搭建专栏:
https://blog.****.net/BADAO_LIUMANG_QIZHI/column/info/35688
本文在SpringBoot实现文件上传的基础上,参照:
https://blog.****.net/BADAO_LIUMANG_QIZHI/article/details/89363347
实现
在templates下新建uploadBatch.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>uploadBatch test</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data" action="/upload/batch">
<p>
文件1<input type="file" name="file"/>
</p>
<p>
文件2<input type="file" name="file"/>
</p>
<p>
文件3<input type="file" name="file"/>
</p>
<p>
<input type="submit" value="上传"/>
</p>
</form>
</body>
</html>
UploadController中新增方法
@RequestMapping("/toUploadBatch")
private String toUploadBatch() {
return "uploadBatch";
}
@RequestMapping(value="/upload/batch",method=RequestMethod.POST)
@ResponseBody
//file要与表单上传的名字相同
public String uploadFiles(MultipartFile[] file,HttpServletRequest request) {
try {
//创建文件在服务器端存放路径
String dir = request.getServletContext().getRealPath("/upload");
File fileDir = new File(dir);
if(!fileDir.exists()) {
fileDir.mkdirs();
}
//生成文件在服务器端存放的名字
for(int i=0;i<file.length;i++) {
String fileSuffix = file[i].getOriginalFilename().substring(file[i].getOriginalFilename().lastIndexOf("."));
String fileName=UUID.randomUUID().toString()+fileSuffix;
File files = new File(fileDir+"/"+fileName);
//上传
file[i].transferTo(files);
}
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
}
return "上传成功";
}
运行项目,访问
http://localhost:8080/toUploadBatch
选择多个文件后
点击上传
来到项目实际目录下
源码下载
https://download.****.net/download/badao_liumang_qizhi/11117936