Как получить загруженный файл MIME в Джерси

У меня есть стандартная конечная точка загрузки в Джерси:

@POST
@Secure
@Consumes("multipart/form-data")
public Response upload( @Context final HttpHeaders hh,
            @FormDataParam("fileaaa") final FormDataContentDisposition disposition,
            @FormDataParam("fileaaa") final InputStream input,

Как я могу получить MIME-тип загруженного файла?

Если я делаю disposition.getType, это получает мне тип MIME формы; в этом случае form-data.

Я знаю, что информация где-то есть; HTTP-сообщение должно выглядеть примерно так:

-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="input_text"

mytext

-----------------------------7d01ecf406a6
Content-Disposition: form-data; name="fileaaa";
filename="C:\Inetpub\wwwroot\Upload\pic.gif"
Content-Type: image/gif

(binary content)
-----------------------------7d01ecf406a6--

Ответы

Ответ 1

Я решил это, позволив Джерси ввести параметр BodyPart в моем методе. getMediaType() на части тела дает мне то, что мне нужно:

@POST
@Secure
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload(/*other parms */,  @FormDataParam("fileaaa") final FormDataBodyPart body) {
   String mimeType = body.getMediaType().toString();
   //handle upload
}