Reputation: 4068
I have a standard upload endpoint in Jersey:
@POST
@Secure
@Consumes("multipart/form-data")
public Response upload( @Context final HttpHeaders hh,
@FormDataParam("fileaaa") final FormDataContentDisposition disposition,
@FormDataParam("fileaaa") final InputStream input,
How can I get the MIME type of the uploaded file?
If I do disposition.getType
this gets me the MIME type of the form; in this case form-data
.
I know the information is there somewhere; the HTTP message should be something like:
-----------------------------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--
Upvotes: 18
Views: 16208
Reputation: 4068
I solved this by letting Jersey inject a BodyPart parameter in my method. getMediaType() on the body part gives me what I needed:
@POST
@Secure
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload(/*other parms */, @FormDataParam("fileaaa") final FormDataBodyPart body) {
String mimeType = body.getMediaType().toString();
//handle upload
}
Upvotes: 38