Spring Bootd单/多文件上传
发表于|更新于
|阅读量:
Spring Bootd单/多文件上传
<The rest of contents | 余下全文>
单/多文件上传
upload.html:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <!DOCTYPE HTML> <html> <head> <title>文件上传</title> </head>
<body> <form action="/upload" enctype="multipart/form-data" method="post"> 上传文件1:<input type="file" name="file"><br/> <input type="submit" value="提交"> </form> </body> </html>
|
UploadController:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| package com.example.demo.controller;
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest; import java.io.File; import java.io.IOException; import java.util.List;
@Controller public class UploadController { @GetMapping("/upload") public String upload() { return "upload"; }
@GetMapping("/multiUpload") public String multiUpload() { return "multiUpload"; }
@PostMapping("/multiUpload") @ResponseBody public String multiUpload(HttpServletRequest request) { List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("file"); String filePath = "D:/path/"; for (int i = 0; i < files.size(); i++) { MultipartFile file = files.get(i); if (file.isEmpty()) { return "上传第" + (i++) + "个文件失败"; } String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName); try { file.transferTo(dest); } catch (IOException e) { return "上传第" + (i++) + "个文件失败"; } }
return "上传成功";
}
@PostMapping("/upload") @ResponseBody public String upload(@RequestParam("file") MultipartFile file) { if (file.isEmpty()) { return "上传失败,请选择文件"; }
String fileName = file.getOriginalFilename(); String filePath = "D:/path/"; File dest = new File(filePath + fileName); try { file.transferTo(dest); return "上传成功"; } catch (IOException e) { } return "上传失败!"; } }
|
multiUpload.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!DOCTYPE HTML> <html> <head> <title>文件上传</title> </head>
<body> <form action="/multiUpload" enctype="multipart/form-data" method="post"> 上传文件:<input type="file" name="file"><br/> 上传文件:<input type="file" name="file"><br/> 上传文件:<input type="file" name="file"><br/> 上传文件:<input type="file" name="file"><br/> <input type="submit" value="提交"> </form> </body> </html>
|
设置上传文件大小的两种方式
springboot 1.5.X系列处理方式
创建tomcat配置类
1 2 3 4 5 6 7 8 9
| @Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setMaxFileSize("10240KB"); factory.setMaxRequestSize("102400KB"); return factory.createMultipartConfig(); }
|
注意
spring.http.multipart.maxFileSize=10Mb
spring.http.multipart.maxRequestSize=10Mb
已经过期 >>>>
在application.properties中添加如下配置信息
application.properties
1 2
| spring.servlet.multipart.max-file-size=20MB spring.servlet.multipart.max-request-size=20MB
|
maxFileSize 是单个文件大小
maxRequestSize是设置总上传的数据大小
Springboot 2.X系列配置
创建tomcat配置类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @Configuration public class TomcatConfig {
@Bean public MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); factory.setMaxFileSize(DataSize.of(100, DataUnit.MEGABYTES)); factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES)); return factory.createMultipartConfig(); } }
|
配置文件配置
application.properties
1 2
| spring.servlet.multipart.max-file-size=20MB spring.servlet.multipart.max-request-size=20MB
|