如何从多部分表单数据请求中删除http工件?

时间:2012-01-20 21:05:11

标签: java file-upload jersey multipartform-data

我在jersery servlet中有这个方法签名。正在到达servlet并且表单数据存在于uploadedInputStream对象中,但是流没有从中删除http工件。见下文。

@POST
@Produces("text/plain")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String uploadFileIE(
    @FormDataParam("qqfile") InputStream uploadedInputStream ){

}

保存到文件时,输入流包含字节数据周围的这些工件:

-----------------------------7dc1f42e3005a8
Content-Disposition: form-data; name="qqfile";filename="[filename]"
Content-Type: application/octet-stream

[bytes from data stream]
-----------------------------7dc1f42e3005a8--

此时不应该删除这些工件吗?有没有简单的方法来删除它们而不重新发明轮子?

1 个答案:

答案 0 :(得分:4)

使用Jersey,您需要使用FormDataContentDisposition对象“使用”额外的标头信息。凌乱但必要:

@POST
@Produces("text/plain")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String uploadFileIE(
    @FormDataParam("qqfile") InputStream uploadedInputStream,
    @FormDataParam("qqfile") FormDataContentDisposition fileDetail){

}