Jquery blueimp文件上载延迟的data.submit()的进度
我有一个案例,我必须先保存表单-以获得一个id-上传的文件将与之相关 我工作得很好-但到目前为止,我还无法从Jquery blueimp文件上载延迟的data.submit()的进度,jquery,file-upload,blueimp,Jquery,File Upload,Blueimp,我有一个案例,我必须先保存表单-以获得一个id-上传的文件将与之相关 我工作得很好-但到目前为止,我还无法从data.submit()获取任何进度数据 可能吗 以下是我的代码:首先收集挂起列表中的数据对象: var pendingList = []; $('#fileupload').fileupload({ dropZone: $('#drop-area'), uploadTemplateId: null, downloadTemplateId: null, u
data.submit()获取任何进度数据代码>
可能吗
以下是我的代码:首先收集挂起列表中的数据对象:
var pendingList = [];
$('#fileupload').fileupload({
dropZone: $('#drop-area'),
uploadTemplateId: null,
downloadTemplateId: null,
url: multi_upload_action,
autoUpload: false,
add: function (e, data)
{
$.each(data.files, function (index, file)
{
var row = $('<div class="template-upload">' +
'<div class="table-cell">' +
'<div class="name">' + file.name + '</div>' +
'<div class="error"></div>' +
'</div>' +
'<div class="table-cell">' +
'<div class="size">Processing...</div>' +
'</div>' +
'<div class="table-cell">' +
'<div class="progress" style="width: 100px;"></div>' +
'</div>' +
'</div>');
// fetching formatted size;
var file_size = formatFileSize(file.size);
row.find('.size').text(file_size);
data.context = row.appendTo($(".content_upload_download"));
});
pendingList.push(data);
},
limitConcurrentUploads: 1,
maxChunkSize: 8388000
});
问候找到了适合我的解决方案:
为添加时的每个文件创建隐藏的开始按钮
提交主表格,并接收额外信息
将新信息附加到fileupload实例的url
循环所有开始按钮并启动单击事件
在上次上载完成后重定向页面
sendAllFiles=函数(id)
{
$('#fileupload')。fileupload(
“选项”,
“url”,
phpGWLink('index.php',{menuaction:'helpdesk.uitts.handle_multi_upload_file',id:id})
);
$.each($('.start\u file\u upload')、函数(索引、文件\u start)
{
文件启动。单击();
});
};
$('#fileupload')。fileupload({
dropZone:$(“#放置区域”),
uploadTemplateId:null,
downloadTemplateId:null,
自动上载:false,
添加:功能(e、数据)
{
$.each(data.files,函数(索引,文件)
{
var file_size=formatFileSize(file.size);
data.context=$(“”)
.append($('').text(data.files[0].name+''+文件大小))
.appendTo($(“.content\u upload\u download”))
.append($('start'))
。单击(函数()
{
data.submit();
}));
pendingList++;
});
},
进度:功能(e、数据)
{
var progress=parseInt((data.loaded/data.total)*100,10);
css(“background-position-x”,100-progress+“%”);
},
完成:功能(e,数据)
{
文件计数++;
var result=JSON.parse(data.result);
如果(结果文件[0]。错误)
{
data.context
.removeClass(“文件”)
.addClass(“错误”)
.append($('').text('Error:'+result.files[0].Error));
}
其他的
{
data.context
.addClass(“完成”);
}
如果(文件计数===待处理列表)
{
window.location.href=重定向\u操作;
}
},
limitConcurrentUploads:1,
maxChunkSize:8388000
});
sendAllFiles = function (id, redirect_action)
{
var total_files = pendingList.length;
var n = 0;
pendingList.forEach(function (data)
{
data.formData = {id: id};
data.submit()
.done(function (data, status)
{
n++;
$.each(data.files, function (index, file)
{
if (typeof file.error != 'undefined' && file.error)
{
alert(file.name + ': ' + file.error);
}
});
if (n == total_files)
{
window.location.href = redirect_action;
}
});
});
};
sendAllFiles = function (id)
{
$('#fileupload').fileupload(
'option',
'url',
phpGWLink('index.php', {menuaction: 'helpdesk.uitts.handle_multi_upload_file', id: id})
);
$.each($('.start_file_upload'), function (index, file_start)
{
file_start.click();
});
};
$('#fileupload').fileupload({
dropZone: $('#drop-area'),
uploadTemplateId: null,
downloadTemplateId: null,
autoUpload: false,
add: function (e, data)
{
$.each(data.files, function (index, file)
{
var file_size = formatFileSize(file.size);
data.context = $('<p class="file">')
.append($('<span>').text(data.files[0].name + ' ' + file_size))
.appendTo($(".content_upload_download"))
.append($('<button type="button" class="start_file_upload" style="display:none">start</button>')
.click(function ()
{
data.submit();
}));
pendingList++;
});
},
progress: function (e, data)
{
var progress = parseInt((data.loaded / data.total) * 100, 10);
data.context.css("background-position-x", 100 - progress + "%");
},
done: function (e, data)
{
file_count++;
var result = JSON.parse(data.result);
if (result.files[0].error)
{
data.context
.removeClass("file")
.addClass("error")
.append($('<span>').text(' Error: ' + result.files[0].error));
}
else
{
data.context
.addClass("done");
}
if (file_count === pendingList)
{
window.location.href = redirect_action;
}
},
limitConcurrentUploads: 1,
maxChunkSize: 8388000
});