Как получить MIME-тип загруженного файла на Джерси - PullRequest
17 голосов
/ 11 ноября 2010

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

@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 Ответ

34 голосов
/ 08 декабря 2010

Я решил это, позволив Джерси ввести в мой метод параметр 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
}
...