有没有办法在dojo中取消正在进行的上传?

时间:2016-07-21 16:28:26

标签: dojo

我有一个文件上传器,可以处理非常大的文件。很多时候用户会取消上传。似乎没有任何方法可以使浏览器取消正在处理它的XHR POST。因此,进度和完整事件会在稍后触发,并且上载实际上已完成。据推测,必须在上传器中嵌入一个XHR对象,我可以调用abort,但我在API文档或上传器对象的控制台转储中都没有看到任何内容。

1 个答案:

答案 0 :(得分:1)

如果您的目标是支持 HTML5上传器(而不是Iframe或Flash版本),那么您可以执行以下操作:

  • 使用以下内容创建新的上传器小部件(代码未经过测试,可能需要进行一些调整):



define(['dojo/_base/declare', 'dojox/form/Uploader'], function(declare, Uploader) {
  return declare([Uploader], {
    xhrRequest: null,
    createXhr: function() {
      this.xhrRequest = this.inherited(arguments);
      return this.xhrRequest;
    },
    cancel: function() {
      if (this.xhrRequest && this.xhrRequest.abort) {
        this.xhrRequest.abort();
      }
    }
  });
});




  • 使用新的小部件而不是dojox.form.Uploader
  • 如果要取消上传,请调用cancel方法。

但请记住:HTML5上传程序只能