GWT:获取文件上传速度显示进度条

GWT : Get file upload speed to display progress bar

我已经编写了一个用于上传文件的 Servlet。在 UI 上,我想在 GWT 中显示文件上传的进度条。如何获取文件上传速度?

唯一不依赖 "server push" 的服务器端助手的唯一方法是使用 XMLHttpRequest 发送表单或文件并使用其进度事件(基本上支持 everywhere but IE,因此您需要回退到 IE 中的基本形式)。要使用 GWT 做到这一点,您必须使用 JSNI。

如果您绝对需要支持 IE(我的意思是显示上传进度,因为您可以轻松地优雅地降级为标准表单上传),您需要服务器将进度告知客户端;这意味着您需要 "server push" 的反向通道。最简单的是使用 GWTUpload then 或一些类似的第三方库。

为了显示,可以使用<progress> element. In GWT, the easiest is to use it through UiBinder within an HTMLPanel: bind it to an Element @UiField and modify its properties with setPropertyDouble et al. It's relatively easy to create a Widget around a progress element created through Document.get().createElement("progress")。或者您可以使用第三方库(GWT-Bootstrap 或其他)或使用 <div> 元素和 CSS 创建进度条。同样,这取决于您 want/need 支持哪些浏览器。