带进度侦听器的GWT FileUpload

时间:2013-11-24 20:47:29

标签: java javascript jquery gwt servlets

我想观察从GWT上传文件的上传百分比。

在JavaScript中,您可以使用XMLHttpRequest并添加如下事件监听器:

var oReq = new XMLHttpRequest();

oReq.upload.addEventListener("progress", updateProgress, false);

// progress on transfers from the server to the client (downloads)
function updateProgress (oEvent) {
  if (oEvent.lengthComputable) {
    var percentComplete = oEvent.loaded / oEvent.total;
    // ...
  } else {
    // Unable to compute progress information since the total size is unknown
  }
}

(上述代码来自here。)

这在jQuery中也很容易完成:

 var $request = $.ajax({
      xhr: function() {
        xhrNativeObject = new window.XMLHttpRequest();
        //Upload progress
        xhrNativeObject.upload.addEventListener("progress", function(event) { ... }
      }
 });

我想对GWT做同样的事情。我可以使用RequestBuilder发送请求,但这只是XMLHttpRequest JavaScriot对象的高级包装器。另一种可能性是使用GWT XMLHttpRequest类,它是JavaScript XMLHttpRequest的JSNI包装器。

我的问题:

如何向XMLHttpRequest或RequestBuilder添加进度监听器?

3 个答案:

答案 0 :(得分:1)

我在gwt-upload库之前使用过。

你不需要重新发现美国。

感谢moxie group

gwt-upload-project page

答案 1 :(得分:0)

//upload spring service conroller
@RequestBody public void uploadImage(@RequestParam("file") MultipartFile file ){
  //what ever you want
}

XML配置

<bean id=multipartResolver" class ="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

答案 2 :(得分:0)

GWT Elemental包含您已经需要的所有AFAICT。