ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Spring MVC学习之——上传文件

2026/9/15 18:58:51 拓冰建站 浏览量
Spring MVC学习之——上传文件

在Spring MVC中加入上传文件的功能

1.添加依赖

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

2.配置文件上传解析器

<!--配置文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="5242880" /><property name="defaultEncoding" value="UTF-8" />
</bean>

3.测试

  • 编写controller

    注意在controller方法的参数中 MultipartFile upload的参数名一定要和jsp中上传input的name保持一致,否则会报空指针异常。

    @Controller
    @RequestMapping("/account")
    public class AccountController {@RequestMapping(path="/upload")public String upload(HttpServletRequest request, MultipartFile upload,Model model) throws IOException {System.out.println("springmvc方式的文件上传");//获取要上传的文件目录String path = request.getSession().getServletContext().getRealPath("/uploads");System.out.println("path:"+path);//根据文件上传的目录创建File对象,如果不存在则创建1个File对象File file = new File(path);if(!file.exists()){//创建一个file对象file.mkdirs();}//获取文件上传名称String filename = upload.getOriginalFilename();//完成文件上传upload.transferTo(new File(path,filename));model.addAttribute("msg", "欢迎你 springmvc");return "success";}
    }
    
  • 在index.jsp里面定义超链接

    注意表单在加入上传的input后,一定要写enctype=“multipart/form-data”,否则controller会接收不到,报错空指针

        <form action="/account/upload" method="post" enctype="multipart/form-data">文件: <input type="file" name="upload"></input><input type="submit" value="提交"></form>