我正在尝试为每个上传的块更新formData。但是Blueimps jquery文件上传插件只允许你在开头设置一次formData。
我需要能够更新formData的原因是我可以告诉服务器它当前的块是什么,即24个块中的3个。
这是我的代码:
$('#fileupload').fileupload({
maxChunkSize: 50024,
url: '/webpanel/upload/blueimp/',
dataType: 'json',
success: function (data, textStatus, jqXHR)
{
count = parseInt($('#chunk').val()) + 1;
$('#chunk').val(count);
data.formData = {
chunk: $('#chunk').val()
};
},
submit: function (e, data)
{
data.formData = {
fname: data.originalFiles[0].name,
chunks: Math.ceil(data.originalFiles[0].size/maxChunkSize),
chunk: $('#chunk').val()
};
}
});
帮助表示赞赏
答案 0 :(得分:3)
如果您还没有找到解决方案,请尝试使用添加功能:
$('#fileupload').fileupload({
add: function (e, data) {
data.formData = {
fname: data.originalFiles[0].name,
chunks: Math.ceil(data.originalFiles[0].size/maxChunkSize),
chunk: $('#chunk').val()
};
data.submit();
}
});
您可能需要观察$('#chunk')的值,并在更改时调用上面的代码。
我在AngularJS指令中使用了类似的东西,并从以下方面获得灵感: https://github.com/blueimp/jQuery-File-Upload/wiki/Submit-files-asynchronously#overriding-the-add-callback