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规范利用其他接口实现文件上传的方法