使用jax-rs規范,需要引入spring-boot-starter-jersey包,用于支撐@Path,@GET等jax-rs注解,使用jax-rs規范上傳文件,需要引入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.指定接口的消費數據類型為multipart/form-data
2.文件的接收分為2部分: 一部分是描述數據,一部分是輸入流數據,
描述數據用FormDataContentDisposition對象接收,流數據用InputStream對象接收.通過類似于@PathParam綁定注解的@FormDataParam分別將文件數據的兩部分數據綁定到對應的變量上.
@Path("/upload")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA_VALUE)
void upload(@FormDataParam("file") InputStream inputStream, @FormDataParam("file") FormDataContentDisposition file);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://www.cnblogs.com/wangxuejian/p/13547757.html