SpringMVC中文件上传和下载
定义
上传:指的是用户将自己本地计算机中文件通过网络的形式上传到系统所在服务器上的过程,这个过程称之为文件上传。
下载:指的是用户通过网络的形式将服务器上的文件下载到自己本地计算机上的过程,称之为下载
SpringMVC中如何开发文件上传
在系统中开发一个可以进行上传文件的上传页面,包含一个form表单,在表单中开发一个可以选择本地计算机文件的入口
form表单要求
- form的method提交方式必须是post
- 修改form的enctype
- application/x-www.form-urlencoded 代表 文本 提交
- multipart/form-data 代表 二进制 提交
1
2
3
4<form action="${pageContext.request.contextPath}/file/upload" method="post" enctype="multipart/form-data">
<input type="file" name="img"/>
<input type="submit" value="上传文件">
</form>开发controller 在控制器方法中使用
MultipartFile
进行文件的接收在SpringMVC配置文件中加入文件上传解析器配置
1
2
3
4
5<!--配置文件上传解析器
id:必须指定为 multipartResolver
-->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
id="multipartResolver"/>要求:文件上传解析器必须存在id,且 id必须为multipartResolver
引入文件上传的相关依赖
1
2
3
4
5<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
如何修改文件上传时文件的原始名称
分隔符
1
2
3
4
5
6
7String fileName = "name.aa.txt";
//1.分隔符
String[] split = fileName.split("\\.");
System.out.println(split[split.length-1]);
------结果----
txt字符串拆分
1
2
3
4
5
6
7
8String fileName = "name.aa.txt";
//2.字符串拆分
int i = fileName.lastIndexOf(".");
System.out.println(fileName.substring(i));
------结果----
.txt工具类
1
2
3
4
5
6
7
8String fileName = "name.aa.txt";
//3.工具类 common-fileupload
String extension = FilenameUtils.getExtension(fileName);
System.out.println(extension);
------结果----
txt
将用户上传的文件放入当天日期目录中
1 | //1.生成当天日期目录 |
springmvc中解决文件上传大小的限制
注意:在SpringMVC中默认不限制上传文件的大小;而在struts2中默认上传文件最大不超过2M
1 | <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" |
SpringMVC中开发文件下载
事例代码:
1 |
|
SpringMVC中文件上传和下载