概述
2019独角兽企业重金招聘Python工程师标准>>>
说下SpringMVC的上传
SpringMVC 中,文件的上传,是通过 MultipartResolver 实现的。 所以,如果要实现文件的上传,只要在 spring-mvc.xml 中注册相应的 MultipartResolver 即可。
MultipartResolver 的实现类有两个:
- CommonsMultipartResolver
- StandardServletMultipartResolver
两个的区别:
- 第一个需要使用 Apache 的 commons-fileupload 等 jar 包支持,但它能在比较旧的 servlet 版本中使用。
- 第二个不需要第三方 jar 包支持,它使用 servlet 内置的上传功能,但是只能在 Servlet 3 以上的版本使用。
首先要导入应该有依赖(或者jar包)
在maven中导入的依赖则看上去简易很多
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.16.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
导入jar包或者依赖后,就可以开始写个上传的表单了
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
注意 这里的请求方法必须是post请求
也必须写上enctype=“multipart/form-data”,这表示上传的将会是二进制流的格式,以规定的二进制进行上传
只有设置成这个上传格式,才能上传成功
然后需要写个springmvc的配置文件
<!-- 开启扫描 -->
<context:component-scan base-package="com.liy.controller" />
<!-- 开启mvc注解 -->
<mvc:annotation-driven />
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
id="multipartResolver" >
<!-- 设置上传文件信息参数 -->
<!-- 设置文件上传的最大尺寸 -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
<!-- 配置文件的允许访问静态资源 -->
<mvc:resources location="/**" mapping="/" />
这里CommonsMultipartResolver 类的id必须为“multipartResolver“
这个bean的id是固定的,当DispatcherServlet查找multipart解析器时,会查找id为multipartResolver的Bean。若定义的bean 的id 不是multipartResolver,DispatcherServlet会对它进行忽略。
@SuppressWarnings("serial")
public class DispatcherServlet extends FrameworkServlet {
/** Well-known name for the MultipartResolver object in the bean factory for this namespace. */
public static final String MULTIPART_RESOLVER_BEAN_NAME = "multipartResolver";
controller在接收处理下
@RequestMapping("/upload")
@ResponseBody
public void upload(String name,String address,MultipartFile file) throws IllegalStateException, IOException{
System.out.println(name+"--"+address+"--"+file.getOriginalFilename());
file.transferTo(new File("d:/img/imgs/"+file.getOriginalFilename()));
}
这里的MultiparFile参数的名字必须和
<input type="file" name="file" />
这里的name一致才行
转载于:https://my.oschina.net/u/4116654/blog/3056238
最后
以上就是传统鞋子为你收集整理的springmvc上传的全部内容,希望文章能够帮你解决springmvc上传所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复