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形式
标签:文件,封装,springmvc,数据,commonsMultipartFile,commons,CommonsMultipartFile,上传 来源: https://www.cnblogs.com/new228666/p/16398014.html