我在 Jersey 有一个标准的上传端点:
@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 注入(inject) BodyPart 解决了这个问题我的方法中的参数。 body 部分的 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
}
关于java - 如何在 Jersey 中获取上传文件的 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157127/