springmvc上传文件
作者:互联网
SpringMVC文件上传
思路
SpringMvc的文件上传时通过MultipartResolver(Multipart解析器)处理的,对于MultipartResolver而言它只是一个接口,它有两个实现类
-
CommonsMultipartResolver:依赖于Apache下的jakarta Common FileUpload 项目解析Multipart请求,可以在Spring各个版本中使用,只是它要依赖于第三方包才得以实现,后面的案例中使用这个-
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency>
-
StandardServletMultipartResolver:是Spring3.1版本后的产物,它依赖于Servlet3.0或者更高版本的实现,它不用依赖于第三方包
第一种实现基于CommonsMultipartResolver
-
在SpringMvc配置文件中配置MultipartResolver,"multipartResolver"是Spring约定好的名字不可以修改.
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"> <property name="defaultEncoding" value="utf-8"/> <property name="maxUploadSize" value="#{10*1024*1024}"/> </bean>
-
上传文件表单
<form action="/test" enctype="multipart/form-data" method="post"> 头像<input type="file" name="headimg"> <br> <input type="submit" value="提交"> </form>
-
处理请求的Controller
@RequestMapping(value = "/test",method = RequestMethod.POST) public String test(@RequestParam("headimg") MultipartFile file) throws IOException { File file1 =new File("D:/"+file.getOriginalFilename());//创建file对象 file.transferTo(file1);//将接受的文件存储 return "success"; }
tomcat启动后测试就可以看到文件上传成功了
第二种基于StandardServletMultipartResolver
-
springmvc配置文件
<bean class="org.springframework.web.multipart.support.StandardServletMultipartResolver" id="multipartResolver"> </bean>
-
web.xml配置
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <multipart-config> <location>D:/</location> <max-request-size>5242880</max-request-size> <file-size-threshold>20000000</file-size-threshold> </multipart-config> </servlet>
然后写好表单和Controller,就可以测试了
标签:文件,MultipartResolver,springmvc,依赖于,file,上传 来源: https://www.cnblogs.com/huameixiao/p/15050534.html