我正在尝试创建一个上传文件的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进行了测试。
我错过了什么?
答案 0 :(得分:1)
一切看起来都正确。你确定你的假设是正确的流是空的吗?查看Javadoc:
类InputStream的可用方法始终返回0.
您可以尝试从中读取并查看是否存在数据。
byte[] bytes = IOUtils.toByteArray(inputStream);