SpringMVC学习笔记5:实现文件上传
1.文件上传回顾
- 导入文件上传的jar包。
1 | <dependency> |
- 编写文件上传的JSP页面。
1 | <h3>文件上传</h3> |
- 编写文件上传的Controller控制器。
1 | /** |
2.SpringMVC 传统方式文件上传
SpringMVC 框架提供了 MultipartFile 对象,该对象表示上传的文件,要求变量名称必须和表单 file 标签的 name 属性名称相同。
代码如下
1 | /** |
配置文件解析器对象
1 | <!-- 配置文件解析器对象,要求id名称必须是multipartResolver --> |
3.SpringMVC 跨服务器方式文件上传
搭建图片服务器。
实现 SpringMVC 跨服务器方式文件上传。
- 导入开发需要的 jar 包。
1
2
3
4
5
6
7
8
9
10<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>- 编写文件上传的 JSP 页面。
1
2
3
4
5<h3>跨服务器的文件上传</h3>
<form action="user/fileupload3" method="post" enctype="multipart/form-data">
选择文件:<input type="file" name="upload"/><br/>
<input type="submit" value="上传文件"/>
</form>- 编写控制器。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29/**
* SpringMVC跨服务器方式的文件上传
*
* @param request
* @return
* @throws Exception
*/
public String fileupload3(MultipartFile upload) throws Exception {
System.out.println("SpringMVC跨服务器方式的文件上传...");
// 定义图片服务器的请求路径
String path = "http://localhost:9090/day02_springmvc5_02image/uploads/";
// 获取到上传文件的名称
String filename = upload.getOriginalFilename();
String uuid = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
// 把文件的名称唯一化
filename = uuid+"_"+filename;
// 向图片服务器上传文件
// 创建客户端对象
Client client = Client.create();
// 连接图片服务器
WebResource webResource = client.resource(path+filename);
// 上传文件
webResource.put(upload.getBytes());
return "success";
}