为每个块设置data.formData

时间:2013-10-31 19:13:12

标签: javascript jquery html file-upload blueimp

我正在尝试为每个上传的块更新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()
        };
    }
});

帮助表示赞赏

1 个答案:

答案 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