我正在尝试创建一个上传文件的 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() 检查
)。
我使用 Postman 进行了测试。
请问我缺少什么?
最佳答案
看起来一切都对。您确定您关于流为空的假设是正确的吗?看着Javadoc :
The available method for class InputStream always returns 0.
您可以尝试读取它并查看是否存在数据。
byte[] bytes = IOUtils.toByteArray(inputStream);
关于java - JAX-RS POST 文件输入流为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323803/