首页 > 解决方案 > FineUploader 5.14.0 - setParams 不适用于大文件

问题描述

我已经让以下代码工作了很长一段时间(一年多),但是一个用户试图上传一个 14MB 的文件,而我在上传时发布的额外数据似乎不再发布了。

在 Chrome 开发工具中,我查看了(单个)XHR 的标头,我在“表单数据”部分看到了数据,但没有任何东西到达我不理解的服务器。

几 MB 或更小的文件可以正常工作。我还没有找到一个神奇的 MB 限制。

额外的数据在 onUpload 回调中。board_hash 在页面的头部。

var fu_instance = new qq.FineUploader(
{
    element: $uploader[0],
    template: 'agenda_file_template',
    debug: true,
    request: {
        endpoint: '/m/upload',
        forceMultipart: false,
        customHeaders: {
            Accept: 'application/json'
        }
    },
    autoUpload: false,
    messages:
    {
        noFilesError: "There is no files to upload. Select or drag and drop some files to upload.",
    },
    failedUploadTextDisplay:
    {
        mode: 'custom',
        responseProperty: 'error'
    },
    callbacks:
    {
        onSubmit: function(id, filename)
        {
            // File added to upload
            $uploader.addClass('hide-drop-msg');

            $btn_submit_upload.html('Upload').show();

            unsaved = true;
        },
        onUpload: function(id, name)
        {
            fu_instance.setParams({'board_hash': board_hash, 'parent': $parent.val()});
        },
        onCancel: function(id, name)
        {
            // Actually onBeforeCancel
            if ($uploader.find('ul.qq-upload-list li').length == 1)
            {
                // There is currently 1 & it's about to be axed
                $uploader.removeClass('hide-drop-msg');
                $btn_reset_uploads.hide();
                $btn_submit_upload.html('Upload').show();
                unsaved = false;
            }
        },
        onError: function(id, name, reason, resp)
        {
            // Specific file error
            if (resp.hasOwnProperty('auth_expired'))
            {
                window.location.href = auth_url;
            }
        },
        onComplete: function(id, name, resp)
        {
            if (resp.success)
            {
                var $parent_el = $('#'+$parent.val());

                $parent_el.find('.files').append(resp.html);
                $parent_el.find('.no-agenda-files').hide();
            }
        },
        onAllComplete: function(succeeded, failed)
        {
            // Every file is done
            $btn_submit_upload.hide();
            $btn_reset_uploads.show();
            unsaved = false;
        }
    }
});

我的理解是默认情况下分块是关闭的。我是否配置错了,或者我是否在错误的回调中?

标签: fine-uploader

解决方案


推荐阅读