SpringMVC文件上传

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 }

 

posted @ 2023-10-02 19:17  空嘘一场  阅读(55)  评论(0)    收藏  举报