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"; }
第二种基于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,就可以测试了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。