Jersey2でファイルアップロードを扱うときの方法を書いている記事があまり見つからなかったのでメモ。
StackOverfrowで見つけた。
java - Upload data method in REST web service - Stack Overflow
アップロードされたファイルはbyte配列
かInputStream
で扱えるようなので、
それを受け付けてやれば良いらしい。
Javaの場合
- byte配列で受け取る
@Path("/upload") class UploadResource { @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) public Response upload(byte[] input) { // 入力に対してなんかする return Response.ok().build(); } }
- InputStreamで受け取る
@Path("/upload") class UploadResource { @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) public Response upload(InputStream input) { // 入力に対してなんかする return Response.ok().build(); } }
Kotlinの場合
- byte配列で受け取る
@Path("/upload") class UploadResource { @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) fun upload(input : ByteArray) : Response { // 入力に対してなんかする return Response.ok().build() } }
- InputStreamで受け取る
@Path("/upload") class UploadResource { @POST @Consumes(MediaType.APPLICATION_OCTET_STREAM) fun upload(input : InputStream) : Response { // 入力に対してなんかする return Response.ok().build() } }