jax - rs规范利用其他接口实现文件上传的方法

  

jax - rs规范利用其他接口实现文件上传的方法?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

使用jax - rs规范,需要引入spring-boot-starter-jersey包,用于支撑@ path, @ get等jax - rs注解,使用jax - rs规范上传文件,需要引入jersey-media-multipart包,用于支撑@FormDataParam, FormDataContentDisposition

& lt; dependency>   & lt; groupId> org.glassfish.jersey.media   & lt; artifactId> jersey-media-multipart   & lt;/dependency>   & lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-jersey   & lt;/dependency>

然后需要将接收外部请求的控制器类注册到ResourceConfig,将处理上传文件的MultipartFeature类注册到ResourceConfig

@ configuration   公开课MyJaxrsConfig延伸ResourceConfig {   公共MyJaxrsConfig () {   super.register (UserService.class);   注册(MultiPartFeature.class);   }   }

上传文件时需要注意的地方:

1。指定接口的消费数据类型为多部分/格式

2。文件的接收分为2部分:一部分是描述数据,一部分是输入流数据,

描述数据用FormDataContentDisposition对象接收,流数据用InputStream对象接收。通过类似于@PathParam绑定注解的@FormDataParam分别将文件数据的两部分数据绑定到对应的变量上。

@ path (“/upload")
@POST (MediaType.MULTIPART_FORM_DATA_VALUE)
了@ consumes注解
空白上传(@FormDataParam (“file")InputStream InputStream, @FormDataParam (“file")FormDataContentDisposition文件);

jax - rs规范利用其他接口实现文件上传的方法