0

在 REST 客户端中,我将几个文件上传到服务器。
为了向用户报告上传过程,我使用了进度条。
总大小设置为文件维度的总和。
这是一个估计值,因为上传的字节数多于文件中的字节数。问题是:我可以在上传开始之前
获得上传的实际字节数吗? 这将允许在上传开始之前确定总大小而不是估计。

 FormDataMultiPart multiPart = new FormDataMultiPart();
 FileDataBodyPart fdbp = new FileDataBodyPart("data.zip", new File("data.zip")); 
 BodyPart bp = multiPart.bodyPart(fdbp);
 builder.post(String.class, multiPart);
4

1 回答 1

0

简单的答案 - 不。

更全面的一个:你可以。但这不值得。基本上,您需要以某种方式为 FormDataMultiPart 实例调用 MessageBodyWriter(请参阅 参考资料org.glassfish.jersey.media.multipart.internal.MultiPartWriter.writeTo(...))并从该调用中获取写入的字节。这种方法存在一些问题;

  1. 您将执行两次 writeTo 操作 - 这意味着一个请求将消耗两倍的资源,或者
  2. 您必须缓存输出并将其发送为byte[]- 您将需要大量内存(取决于 data.zip 文件大小)。
于 2012-07-31T08:17:22.653 回答