Как получить загруженный файл 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
}