1. 程式人生 > 程式設計 >Jax-rs規範REST介面檔案上傳程式碼例項

Jax-rs規範REST介面檔案上傳程式碼例項

使用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);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。