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

时间:2015-10-24 12:12:44

标签: gwt

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

1 个答案:

答案 0 :(得分:3)

在没有依赖“服务器推送”的服务器端帮助程序的情况下执行此操作的唯一方法是使用XMLHttpRequest发送表单或文件并使用其进度事件(基本上支持everywhere but IE,因此你需要回退到IE中的基本形式)。要使用GWT,您必须使用JSNI。

如果您绝对需要支持IE(我的意思是显示上传进度,因为您可以轻松地降级到标准表单上传),您需要服务器告诉客户端进度;这意味着你需要一个带有“服务器推送”的反向通道。最简单的方法是使用GWTUpload或类似的第三方库。

要显示,您可以使用<progress> element。在GWT中,最简单的方法是在HTMLPanel内通过UiBinder使用它:将其绑定到Element @UiField并使用setPropertyDouble等修改其属性。围绕通过Document.get().createElement("progress")创建的进度元素创建Widget相对容易。或者您可以使用第三方库(GWT-Bootstrap或其他)或从<div>元素和CSS创建进度条。同样,它取决于您希望/需要支持哪些浏览器。