微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

springmvc实现文件上传

springMVC实现文件上传

注意:

1.文件上传在restful接口里对应的是post的请求

2.演示使用表单上传,表单上传的数据认是以查询字符串的形式补充到url后,在实现文件上传的时候要修改数据的上传形式

 

上传view

<form th:action="@{/testUP}" method="post" enctype="multipart/form-data">
  图片<input type="file" name="photo"><br>
  <input type="submit" value="上传"><br>
</form>
enctype="multipart/form-data"   将认的查询字符串形式的数据上传格式修改为多段数据形式进行上传

 

控制器(需要进行的处理)

1.将上传的多段数据进行封装,借助外部依赖commons-fileupload

1.1依赖引入

<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

1.2将上传的多段数据进行封装(commons-fileupload + spring ioc完成)

1.2.1 注册CommonsMultipartResolver(多段数据解析器对象)

在ioc中注册封装多段数据的bean(名字是固定的,因为是ioc去访问的,按照名字去找)

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
1.2.2 转换(封装多段数据)

dispatcher接受到含有多段数据的request域对象的时候,会去spring的ioc容器当中调用该beans,来完成多段数据的封装

封装后的多段数据会转换成一个Commonsmultipartfile对象

无法演示,生成的Commonsmultipartfile,保存在Request域对象中

1.2.3 接受(byName接受+请求处理)

控制器方法接受Commonsmultipartfile对象,并进行处理

public String testUp(Commonsmultipartfile commonsmultipartfile){
  System.out.println(commonsmultipartfile.getoriginalFilename());
  System.out.println(commonsmultipartfile.getName());
  return "target3";
}
Commonsmultipartfile commonsmultipartfile     类似byName形式
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐