本文实例为大家分享了Spring Boot搭建文件上传服务的具体代码,供大家参考,具体内容如下
一、服务端
pom.xml
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
30
31
32
33
34
35
36
37
38
|
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion >4.0.0</ modelVersion > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >1.3.3.RELEASE</ version > </ parent > < groupId >com.test.spring</ groupId > < artifactId >spring-boot</ artifactId > < version >1.0.0</ version > < packaging >jar</ packaging > < name >spring-boot</ name > < url >http://maven.apache.org</ url > < properties > < project.build.sourceEncoding >UTF-8</ project.build.sourceEncoding > < maven.compiler.source >1.8</ maven.compiler.source > < maven.compiler.target >1.8</ maven.compiler.target > </ properties > < dependencies > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > < dependency > < groupId >commons-io</ groupId > < artifactId >commons-io</ artifactId > < version >2.4</ version > </ dependency > </ dependencies > </ project > |
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package com.test.spring; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import javax.servlet.MultipartConfigElement; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.Part; import org.apache.commons.io.IOUtils; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.context.embedded.MultipartConfigFactory; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @Controller @EnableAutoConfiguration public class FileUploadController { @RequestMapping (value= "/upload" , method=RequestMethod.POST) @ResponseBody public String upload(HttpServletRequest request) throws Exception { Part part = request.getPart( "uploadfile" ); InputStream input = part.getInputStream(); OutputStream output = new FileOutputStream( "d:/tmp/" + part.getSubmittedFileName()); IOUtils.copy(input, output); output.close(); input.close(); return "OK" ; } @Bean MultipartConfigElement createMultipartConfigElement() { MultipartConfigFactory mcf = new MultipartConfigFactory(); /** * 设置最大上传文件的大小,默认是10MB */ mcf.setMaxFileSize( "50MB" ); return mcf.createMultipartConfig(); } public static void main(String[] args) throws Exception { SpringApplication.run(FileUploadController. class , args); } } |
注意:spring-boot-starter-web 1.3.3.RELEASE 依赖的servlet是3.1
二、客户端
客户端使用httpclient调用
先配置maven依赖
1
2
3
4
5
6
7
8
9
10
|
< dependency > < groupId >org.apache.httpcomponents</ groupId > < artifactId >httpclient</ artifactId > < version >4.5.2</ version > </ dependency > < dependency > < groupId >org.apache.httpcomponents</ groupId > < artifactId >httpmime</ artifactId > < version >4.5.2</ version > </ dependency > |
测试代码
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
30
31
32
33
34
35
36
37
|
package com.test.upload; import java.io.File; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; public class HttpUpload { public static void main(String[] args) throws Exception { String url = "http://127.0.0.1:8080/upload" ; CloseableHttpClient client = HttpClients.createDefault(); HttpPost httppost = new HttpPost(url); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody( "uploadfile" , new File( "D:/develop/apache-karaf-3.0.4.zip" )); HttpEntity reqEntity = builder.build(); httppost.setEntity(reqEntity); CloseableHttpResponse resp = client.execute(httppost); String str = EntityUtils.toString(resp.getEntity()); System.out.println(str); resp.close(); client.close(); } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/mn960mn/article/details/50844963