我们使用的是java 6,我需要检查"inputStream“是否为空。
@POST
@Path("/test")
@ApiOperation ( value = "Test", response = String.class)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String test(
@ApiParam(value = "file upload") @FormDataParam("file") InputStream is
) {
return is.read();
}即使我们没有上传文件,inputStream也会在读取时返回"117“。
inputStream.available(),它总是返回"0""PushbackInputStream" (PushbackInputStream)的链接。如何检查inputStream是否为空?
发布于 2016-03-21 10:52:22
对于我的请求,inputStream.available()也返回0。我不知道我的解决方案是否每次都有效,但它对我有效。
您可以通过方法中的多个参数获得有关上载文件的其他信息,并且可以使用它来检查文件的名称。如果是空的,那么InputStream应该是空的:
@POST
@Path("/test")
@ApiOperation ( value = "Test", response = String.class)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String test(
@FormDataParam("file") InputStream is,
@FormDataParam("file") FormDataContentDisposition fileDetails
) {
String fileName = fileDetails.getFileName();
if (fileName != null && !fileName.equals("")) {
// read the input stream
}
return is.read();
}发布于 2018-11-13 22:11:49
您不应该为每个param指定不同的名称,例如:
@FormDataParam("file") InputStream is,
@FormDataParam("details") FormDataContentDisposition fileDetails也许其中一个在打另一个。
https://stackoverflow.com/questions/25243675
复制相似问题