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