JAX-RS POST文件输入流为空

时间:2017-09-20 13:45:15

标签: java file post jax-rs

我正在尝试创建一个上传文件的POST调用,这是我的代码:

@POST
@Path("/uploadfile") 
@Produces({"application/json","application/xml"}) //the default result is json
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Authenticated
public Response saveFile( @FormDataParam("file") InputStream inputStream,
                              @FormDataParam("file") FormDataContentDisposition cdh) throws CompanyNotFoundException, UserUnauthorizedException, IllegalAccessException, WasteInvalidException, ItemNotFoundException, IOException{
    System.out.println(inputStream.available());

    return Response.ok("success").build();
}

但由于某种原因,收到的inputStream总是有0个字节(使用inputStream.available() check)。  我使用Postman进行了测试。 enter image description here

我错过了什么?

1 个答案:

答案 0 :(得分:1)

一切看起来都正确。你确定你的假设是正确的流是空的吗?查看Javadoc

  

类InputStream的可用方法始终返回0.

您可以尝试从中读取并查看是否存在数据。

byte[] bytes = IOUtils.toByteArray(inputStream);