Jax-rs規範REST介面檔案上傳程式碼例項
阿新 • • 發佈:2020-09-10
使用jax-rs規範,需要引入spring-boot-starter-jersey包,用於支撐@Path,@GET等jax-rs註解,使用jax-rs規範上傳檔案,需要引入jersey-media-multipart包,用於支撐@FormDataParam,FormDataContentDisposition
<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
@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);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。