【问题标题】:GWT FileUpload with Progress Listener带有进度侦听器的 GWT FileUpload
【发布时间】:2013-11-24 20:47:29
【问题描述】:

我想观察从 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 添加进度监听器?

【问题讨论】:

    标签: java javascript jquery gwt servlets


    【解决方案1】:

    我之前用过gwt-upload库。

    你不需要重新发现美国。

    感谢 moxie 组

    gwt-upload-project page

    【讨论】:

    • 您能否提供一个示例,如何在没有 gwt-upload 提供的 ui 的情况下将其与非 GWT 后端一起使用?
    【解决方案2】:
    //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" />
    

    【讨论】:

    • @我使用 Grails 作为后端。我不明白您如何处理上传进度的 GWT 部分?
    • 在我的第一个答案中,gwt-upload 项目也有进度条。我不处理。文件上传时显示进度。如果您实现自己的上传组件,我不知道它是如何工作的。
    • 对不起,但这对我没有帮助
    【解决方案3】:

    GWT Elemental 包含所有你需要的 AFAICT。

    【讨论】:

    • 我没有发现 GWT Element 何时有进度监听器。
    • 我说的是gwt-elemental JAR 中的elemental.xml.XMLHttpRequestelemental.xml.XMLHttpRequestUploadelemental.events.XMLHttpRequestProgressEventelemental.html.FormData 类(带有&lt;inherits name="elemental.Elemental" /&gt;
    • 能否请您发布一个简短的示例,我无法弄清楚它是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2012-12-05
    • 2019-09-02
    • 1970-01-01
    相关资源
    最近更新 更多