<h1>上传单个文件</h1>
<form method="post" action="/file/upload" enctype="multipart/form-data">
    <input type="file" name="file"/>
    <input type="submit"/>
</form>
<h1>上传多个文件</h1>
<form method="post" action="/file/upload2" enctype="multipart/form-data">
    <input type="file" name="file1"/>
    <br/>
    <input type="file" name="file2"/>
    <input type="submit"/>
</form>

maven项目导入这个就够了:

<!--文件上传-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>

然后 commons-io 也就会自动导入
SpringMVC ---- 文件上传_文件上传

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 默认编码 -->
        <property name="defaultEncoding" value="utf-8" />
        <!-- 设置上传文件的最大尺寸为5MB -->
        <property name="maxUploadSize" value="5242880"/>
    </bean>
 /**
     * 对关于上传大小,类型的判断拦截 https://www.cnblogs.com/com-itheima-crazyStone/p/6807342.html
     * 上传单个文件,使用MultipartFile作为方法参数接收传入的文件
     * @param request
     * @param file
     * @param model
     * @return
     * @throws IOException
     */
    @RequestMapping(value = "/upload", method = RequestMethod.POST)
    public String doUploadFile(HttpServletRequest request, @RequestParam("file") MultipartFile file, Model model) throws IOException {
        //获取一个保存文件的路径
        String path = request.getSession().getServletContext().getRealPath("/upload");
        //路径可能不存在,要对其判断,如果不存在则创建
        File sourceFloader = new File(path);
        if (!sourceFloader.exists()) {
            //创建文件夹
            sourceFloader.mkdir();
        }
        if (!file.isEmpty()) {
            // 得到输入流
            InputStream inputStream = file.getInputStream();
            // 获取文件名
            String filename = file.getOriginalFilename();
            FileUtils.copyInputStreamToFile(inputStream, new File(path, filename));
            model.addAttribute("path", "upload\\" + filename);
        }
        return "success";
    }

    /**
     * 多文件上传
     * MultipartHttpServletRequest来解析Request中的文件
     * @param multiRequest
     * @return
     * @throws IOException
     */
    @RequestMapping(value="/upload2", method=RequestMethod.POST)
    public String doUploadFile2(HttpServletRequest request ,MultipartHttpServletRequest multiRequest ,Model model) throws IOException{
        //获取一个保存文件的路径
        String path = request.getSession().getServletContext().getRealPath("/upload");
        //路径可能不存在,要对其判断,如果不存在则创建
        File sourceFloader = new File(path);
        if (!sourceFloader.exists()) {
            //创建文件夹
            sourceFloader.mkdir();
        }
        //获取到上传的文件
        Iterator<String> filesNames = multiRequest.getFileNames();
        List list = new ArrayList();
        while(filesNames.hasNext()){
            //获取到每一个文件
            String fileName =filesNames.next();
            MultipartFile file =  multiRequest.getFile(fileName);
            // 获取文件名
            String filename = file.getOriginalFilename();
            // 得到输入流
            InputStream inputStream = file.getInputStream();
            if(!file.isEmpty()){
                FileUtils.copyInputStreamToFile(inputStream, new File(path, filename));
            }
           list.add("upload\\"+filename);
        }
        model.addAttribute("list" ,list);
        return "success";
    }

我们创建文件夹的位置:
SpringMVC ---- 文件上传_上传_02

这边可能需要注意的就是:
enctype=”multipart/form-data”
MultipartFile
MultipartHttpServletRequest
其余的好像也没有什么了,