Blueimp 上传插件进度条错误

Posted

技术标签:

【中文标题】Blueimp 上传插件进度条错误【英文标题】:Blueimp upload plugin progressbar error 【发布时间】:2013-05-29 11:54:19 【问题描述】:

我有一个使用 blueimp 上传插件上传文件的表单。 上传过程正常。我想要的只是在上传事件中添加一个进度条。 我尝试使用 blueimp 文档中指定的 progressall 回调,但我得到的只是 100% 加载,因为 data.loaded 始终等于 data.total

我已经看到插件仅在 done 回调之后处理 progressall 回调,并且在 done 回调中我有几个动作发生。

请参阅下面的示例:

$("#uploadFile" + docId).fileupload(
        url: my url to the upload script, 
        dataType : 'json',
        type: 'POST',
        formAcceptCharset: 'utf-8',
        forceIframeTransport: true,
        progressInterval: 100,
        bitrateInterval: 500,
        autoUpload: true,
        progressall: function (e, data) 
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress'+docId+' .bar').css(
                'width',
                progress + '%'
            ).text(progress + '%');
        ,
        send : function(e, data) 
            if(data.files[0].size <= 9000000000)
                var docId = $(this).attr("data-course-id");
                $("#uploadFileForm"+docId+" .uploadProgress").removeClass("hidden");
                $("#uploadFeedback").html("");
            else
                $("#uploadFeedback").html(file is too big);
                return false;
            
        ,
        fail : function(e, data) 
            console.log("error = " + data.errorThrown);
            return false;
        ,
        done : function(e, data)       
            var metaSuggestions = data.result;

            $("#uploadFileForm"+docId+" .uploadProgress").addClass("hidden");

            //enable save button
            $("#fileUploadSubmit"+ docId).removeClass("buttonDisabled");
            $("#fileUploadSubmit"+ docId).removeAttr("disabled");

            //populate fields
            $("#fileUploadedId"+docId).val(metaSuggestions.uploadedDocId);
            $("#fileDuration"+docId).val(metaSuggestions.lengthMiliseconds/1000 + " s");
            $("#fileMediaType"+docId).val(metaSuggestions.mediaType);

            //change cancel action
            $("#fileUploadCancel"+ docId).unbind("click").click(function()

                var successCallbackCancel = function(data)
                    $("#uploadFileForm"+ docId).addClass("hidden");
                

                var errorCallbackCancel = function(error)
                    console.log(error);
                

                cancelAddFile(contextPath, docId, metaSuggestions.uploadedDocId, successCallbackCancel, errorCallbackCancel);
            ); 

            $("#fileUploadSubmit"+docId).unbind('click').click(function()

                var successCallbackSubmit = function(data)
                    $("#uploadFileForm" + docId).addClass("hidden");

                    //append file to files container
                    var fileContainer = $("#files" + docId);

                    appendFilesToContainer(data, docId);
                

                var errorCallbackSubmit = function(error)
                    console.log(error);
                

                submitFiles(contextPath, docId, metaSuggestions, successCallbackSubmit, errorCallbackSubmit);
            );
            console.log("file done");
       
    );

【问题讨论】:

【参考方案1】:

我设法通过注释掉 forceIframeTransport: true 来修复它。 现在进度条完美运行!

【讨论】:

以上是关于Blueimp 上传插件进度条错误的主要内容,如果未能解决你的问题,请参考以下文章

jQuery File Upload文件上传插件使用

Jquery Blueimp 文件上传回调

jQuery文件上传插件jQuery Upload File 有上传进度条

jquery中加载完进度条插件怎样跳入下一个网页

基于Jquery插件Uploadify实现实时显示进度条上传图片

jQuery 文件上传插件 - 开始/取消按钮和进度条不起作用