SpringBoot中实现批量文件上传

场景

项目搭建专栏:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688

本文在SpringBoot实现文件上传的基础上,参照:

https://blog.csdn.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.csdn.net/download/badao_liumang_qizhi/11117936

猜你喜欢

转载自blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89363443