无法在 blueimp 文件上传插件的“文件上传块完成”事件处理程序上中止上传
Unable to abort upload on 'fileuploadchunkdone' event handler for blueimp file upload plugin
我试图在发生异常时立即终止上传。 "fileuploadchunkdone"事件处理程序允许我捕获从服务器为每个块发送的"错误"json。 理想情况下,我想在发生异常时立即中止上传。 我需要对每个块进行此检查,因为我需要记录错误并在发生异常时显示错误代码。 但是,我无法通过调用 data.jqXHR.abort() 来杀死异常。 它只是继续经历每一个块。 有什么想法吗? 下面是该事件处理程序的代码:
.on('fileuploadchunkdone', function (e, data) {
if (!data.result.success) {
running--;
var errMsg = "";
if (data.result != null) {
if (data.result.message != null) {
errMsg += data.result.message;
}
if (data.result.error != null)
errMsg += data.result.error;
}
layoutService.showErrorDialog(errMsg);
data.jqXHR = data.abort();
window.removeXHRfromPool(data);
if (running == 0) {
$('#dlgProgress').parent().hide();
$('#progresses').empty();
}
}
})
如果 chunk-send 回调函数返回 false,则整个上传请求将中止。我正在添加一个自定义属性abortChunkSend
,以发出来自块完成事件的信号,以便在下一个块发送事件上取消。
例
.on("fileuploadchunksend", function (e, data)
{
var abortChunkSend = data.context[data.index].abortChunkSend;
if (abortChunkSend)
{
return false;
}
})
.on("fileuploadchunkdone", function (e, data)
{
if (data.result)
{
for (var index = 0; index < data.result.files.length; index++)
{
var file = data.result.files[index];
if (file.error)
{
data.context[index].abortChunkSend = true;
}
}
}
})
参考 blueimp 文档 文件上传块发送.
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 根据文件类型取消绑定和重新绑定click事件处理程序
- 无法在 blueimp 文件上传插件的“文件上传块完成”事件处理程序上中止上传
- 在单个 JavaScript 文件中处理多个页面上的事件的正确方法是什么?
- 单击不同 js 文件中定义的事件处理程序和就绪处理程序 - 不起作用
- 外部 js 文件中的 JQuery 事件处理程序不起作用
- 有没有一种方法可以判断哪个javascript文件包含一个事件处理程序
- 充满事件处理程序的巨大文件!如何在AJAX web应用程序中组织一个大型jQuery文件
- 内联事件处理程序在单独的JavaScript文件中与事件处理程序混淆
- 在外部js文件中引用jQuery事件处理程序
- 在Windows 8 html5的挂起状态事件处理程序中写入文本文件
- Jquery事件处理代码在将脚本从外部js文件包含在head中之后将无法工作
- 在事件发生后调用在多个javascript文件中处理的函数
- javascript/html5的文件读取事件处理程序怪异
- 如何用外部文件替换一些内联JavaScript事件处理程序
- 套接字.IO创建一个单独的事件处理程序文件