
1.配置支持文件上传(SpringMVC.xml)
<!--配置支持文件上传-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置单个文件大小限制(byte)-->
<property name="maxUploadSizePerFile" value="#{10*1024*1024}"/>
<!--设置整个请求大小限制(byte)-->
<property name="maxUploadSize" value="#{100*1024*1024}"/>
</bean>
2.UploadController.java(上传文件页面控制器)
1 /**
2 * @Author hxy
3 * @Description 上传文件页面控制器
4 * @Date 2023/9/14 11:36
5 * @Version 1.0
6 */
7 @Controller
8 public class UploadController {
9 /**
10 * 单文件上传
11 * @param file
12 * @param modelMap
13 * @return {@link String}
14 * @throws IOException
15 */
16 @RequestMapping("/upload1.do")
17 public String upload1(@RequestParam("file1") MultipartFile file, ModelMap modelMap)throws IOException {
18 System.out.println(file);
19 //获取文件名
20 String originalFileName = file.getOriginalFilename();
21 System.out.println(originalFileName);
22 //设置保存文件路径
23 String path = String.format("D:\\%s",originalFileName);
24 //创建文件实例
25 File destFile = new File(path);
26 //写文件
27 file.transferTo(destFile);
28 modelMap.addAttribute("msg","上传文件成功");
29 return "result";
30 }
31
32 /**
33 * 多文件上传
34 * @param file1
35 * @param file2
36 * @param modelMap
37 * @return {@link String}
38 */
39 @RequestMapping("/upload2.do")
40 public String upload2(MultipartFile file1,MultipartFile file2,ModelMap modelMap){
41 System.out.println(file1);
42 System.out.println(file2);
43 modelMap.addAttribute("msg","上传文件成功");
44 return "result";
45 }
46
47 /**
48 * 多文件文件处理(带控件)
49 * MultipartHttpServletRequest :用于获取整个表单信息
50 * @param request
51 * @param modelMap
52 * @return {@link String}
53 */
54 @RequestMapping("/upload3.do")
55 public String upload3(MultipartHttpServletRequest request, ModelMap modelMap){
56 //TODO:获取普通控件数据
57 System.out.println("-----------获取普通控件数据------------");
58 //key:控件的name属性 value:控件属性值(可能有多个)
59 Map<String, String[]> parameterMap = request.getParameterMap();
60 //遍历map
61 parameterMap.forEach((name,values) -> {
62 System.out.println(String.format("%s:%s",name, Arrays.asList(values)));
63 });
64 //TODO:获取多文件数据
65 System.out.println("-----------获取多文件控件数据------------");
66 //key:file控件的name属性名 value:文件数据
67 MultiValueMap<String, MultipartFile> multiFileMap = request.getMultiFileMap();
68 multiFileMap.forEach((name,files)->{
69 System.out.println(String.format("%s:%s",name,files));
70 });
71
72 modelMap.addAttribute("msg","上传文件成功");
73 return "result";
74 }
75
76 @RequestMapping("/upload4.do")
77 public String upload4(@ModelAttribute("msg") UserDto userDto){
78 return "result";
79 }
80 }