3

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

帮助表示赞赏

4

1 回答 1

3

如果您还没有找到解决方案,请尝试使用 add 功能:

$('#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

于 2013-11-20T21:07:47.540 回答