java - 如何在 Jersey 中获取上传文件的 MIME 类型

标签 java file-upload upload mime-types jersey

我在 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/

相关文章:

java - 动画textView更改文本并再次动画(动画倒计时)

java - euler 项目 #10 无法在 java 上得到答案

ubuntu - 在 Windows 文件服务器上存储从 Ubuntu 上传的文件

javascript - 使用正则表达式检查文件扩展名 - application/vnd.ms-excel

c# - 是否可以使用 c# 类创建此 JSON 格式?

java - 将变量传递给 Android 的 AsyncHttpResponseHandler 回调

java - 对于大值,Math.pow 和 Math.sqrt 的工作方式不同吗?

ios - 有没有办法通过 Alamofire 上传 doc、pdf 文件?

javascript - PHP/HTML/JS : External file manager

java - 将图像上传到服务器(Java)