如何在Jersey中获取上传文件的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-- 

我通过让Jersey在我的方法中注入一个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 }