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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM