【问题标题】:FineUploader Chunked Uploads not resumingFineUploader 分块上传未恢复
【发布时间】:2014-07-31 16:40:45
【问题描述】:

我有以下手动激活上传器的实例:

var manualuploader = new qq.FineUploader({
    element: $('#jquery-wrapped-fine-uploader')[0],
    request: {
        endpoint: '/data/assets/ajax/uploader.php'
    },
    autoUpload: false,
    text: {
        uploadButton: '<i class="icon-plus icon-white"></i> Select Files to upload'
    },
    chunking: {
        enabled: true,
        partSize: 50000000
    },
    resume: {
        enabled: true
    },
    debug: true,
    callbacks: {
        onComplete: function (id, fileName, response) {
            $('#uploader').append('<input type="hidden" name="fileasdf[]" value="' + response.originalName + '" />');
            submitForm.call(this);
        },
        onError: function (event, id, name, errorReason, xhrOrXdr) {
            alert(qq.format("Error on file number {} - {}.  Reason: {}", id, name, errorReason));
        }
    }
    });
    $('#triggerUpload').click(function() {      
    manualuploader.uploadStoredFiles();
});

我指定了一个块文件夹,我可以看到这些块已上传。文件上传过程正常完成。

但是,在取消或意外终止的情况下,上传不会恢复。块仍然存在于目录中,所有标准浏览器 cookie 都已启用,但恢复不会发生。

分块调试输出如下。我上传了几个块,取消并重新尝试上传:

[Fine Uploader 4.4.0] Sending chunked upload request for item 1: bytes 1-50000000 of 346011648 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] xhr - server response received for 1 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] responseText = {"success":true,"uploadName":null} fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Received response status 200 with body: {"success":true,"uploadName":null} fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Sending chunked upload request for item 1: bytes 50000001-100000000 of 346011648 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] xhr - server response received for 1 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] responseText = {"success":true,"uploadName":null} fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Received response status 200 with body: {"success":true,"uploadName":null} fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Sending chunked upload request for item 1: bytes 100000001-150000000 of 346011648 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Detected valid file button click event on file 'CentOS-6.3-x86_64-minimal.iso', ID: 1. fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Cancelling 1 fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Caught exception in 'onError' callback - Cannot read property 'length' of undefined fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Received 1 files or inputs. fineuploader-4.4.0.min.js:25
[Fine Uploader 4.4.0] Sending chunked upload request for item 2: bytes 1-50000000 of 346011648 

知道为什么会这样吗?

我还有另一个与该问题无关的查询。对于 onComplete 回调,我只想触发 submitForm.call(this) 函数(提交表单)。但是,如果我只指定 onComplete: submitForm.call(this) 作为错误,则表示未定义 onComplete 响应...

为赛格威道歉,再次感谢。

【问题讨论】:

    标签: fine-uploader


    【解决方案1】:

    已取消的文件不符合恢复条件。此外,从 5.0 开始,cookie 不再用于保存简历数据:我们改用 localStorage。您的日志消息表明该文件已被取消,这意味着它无法恢复。

    onComplete 回调需要一个函数作为一个值。相反,您正在调用一个函数并将该函数的返回值设置为onComplete 的值。这听起来像是对 Function.prototype.call 在 JavaScript 中所做的事情的误解。 call 执行一个函数。如果要使用备用上下文构造新函数,请改用Function.prototype.bind。请注意 bind 在 IE8 和更早版本中不受支持。如果需要支持 IE8 或更旧版本,可以使用Fine Uploader's bind alternative: qq.bind

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 1970-01-01
      • 2018-08-17
      • 2014-01-24
      相关资源
      最近更新 更多