如何以百分比显示进度条?

时间:2016-11-17 19:53:37

标签: javascript jquery ajax coldfusion progress-bar

如何以百分比显示我在屏幕上传的进度?我想显示以0%开头的栏和percentComplete变量的输出百分比。上传完成后,我希望在进度条中看到消息已完成。如果有人可以提供一些例子我会很感激。谢谢。

<div>Select file for upload:   
    <input type="file" id="fileUpload" name="fileUpload" onChange="fileUpload()"/>
    <span id="showBar"></span>
</div>

这是我的JQuery函数:

function fileUpload(){
    var reader = new FileReader();
    var file = fileExist.files[0];

    reader.onload = function(e) {
        var text = reader.result.split(/\r\n|\n/);
        var myForm = new FormData(document.getElementById('myForm'));                       

        $.ajax({
            /*Start-Progress Bar Code*/
            xhr: function(){
                var xhr = new window.XMLHttpRequest();

                xhr.upload.addEventListener("progress", function(evt){
                    if(evt.lengthComputable){
                        var percentComplete = evt.loaded / evt.total;
                        percentComplete = parseInt(percentComplete * 100);
                        console.log(percentComplete);

                        if(percentComplete === 100){
                            console.log("Successfully uploaded!");
                        }
                    }
                },false);
                return xhr;
                },
                /*End*/
                type: 'POST',
                url: 'FileUpload.cfc?method=uploadFile',
                data: new FormData($('#myForm')[0]),
                cache: false,
                contentType: false,
                enctype: 'multipart/form-data',
                processData: false,
                dataType: 'json'
            }).done(function(obj){
                if(obj.STATUS === 200){
                    $('#myForm')[0].reset();
                }else{
                    alert('Error!');
                }
            }).fail(function(jqXHR, textStatus, errorThrown){
                alert(errorThrown);
            })
    }
    reader.readAsText(file, 'UTF-8');
}

1 个答案:

答案 0 :(得分:0)

你考虑过plupload吗?这是他们的核心示例,具有简单的文本百分比:http://www.plupload.com/examples/core