我已经制作了一个 rest api,它工作正常,但我想读取文件的大小,我使用下面的代码来读取文件的大小
@POST
@Path("/test")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response upload( FormDataMultiPart form ){
System.out.println(" size of file="+ filePart.getContentDisposition().getSize());
}
但我得到了文件 -1 的大小。
谁能建议我如何读取文件的实际大小。
但是使用
System.out.println(" data name ="+ filePart.getContentDisposition().getFileName());
我得到了正确的文件名。
最佳答案
首先,我认为限制数据大小的最好方法是在服务器配置上进行设置。请查看相关ref.
其次,由于它是随 Stream 一起提供的,所以它会遇到 EOF 或类似的。这意味着您无法从一开始就找到尺寸。
然而,第三种判断 Jersey 尺寸的替代方法是使用 HTTP header 的内容尺寸。服务器首先获取“Content-Length” header 以了解正文的大小。 @Context HttpServletRequest 请求
有 request.getContentLength()
方法。但是因为它有多个部分,你需要注意主体大小是数据和协议(protocol)开销的总和(分隔符/内容信息)
祝你好运
关于java - 如何在 rest api jersey 中获取文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36834663/