使用jax-rs規(guī)范,需要引入spring-boot-starter-jersey包,用于支撐@Path,@GET等jax-rs注解,使用jax-rs規(guī)范上傳文件,需要引入jersey-media-multipart包,用于支撐@FormDataParam,FormDataContentDisposition
1
2
3
4
5
6
7
8
|
< dependency > < groupId >org.glassfish.jersey.media</ groupId > < artifactId >jersey-media-multipart</ artifactId > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-jersey</ artifactId > </ dependency > |
然后需要將接收外部請求的Controller類注冊到ResourceConfig, 將處理上傳文件的MultipartFeature類注冊到ResourceConfig
1
2
3
4
5
6
7
|
@Configuration public class MyJaxrsConfig extends ResourceConfig { public MyJaxrsConfig() { super .register(UserService. class ); register(MultiPartFeature. class ); } } |
上傳文件時需要注意的地方:
1.指定接口的消費(fèi)數(shù)據(jù)類型為multipart/form-data
2.文件的接收分為2部分: 一部分是描述數(shù)據(jù),一部分是輸入流數(shù)據(jù),
描述數(shù)據(jù)用FormDataContentDisposition對象接收,流數(shù)據(jù)用InputStream對象接收.通過類似于@PathParam綁定注解的@FormDataParam分別將文件數(shù)據(jù)的兩部分?jǐn)?shù)據(jù)綁定到對應(yīng)的變量上.
@Path("/upload")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA_VALUE)
void upload(@FormDataParam("file") InputStream inputStream, @FormDataParam("file") FormDataContentDisposition file);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/wangxuejian/p/13547757.html