0

AJAXを使用してファイルをアップロードしているときにステータスバーを表示するアップロードフォームがあります。アップロードが完了したら、ユーザーに知らせてもらいたいのですが、アップロードが完了しても何も起こりませんが、「完了」と警告するように指示します。

私のコード:

UploadB.click(function(event)
            {
                event.preventDefault();
                event.stopPropagation();

                var FInput = $('#Files').val();

                if(FInput != '')
                {
                    var Data = new FormData();

                    var Files = document.getElementById('Files');

                    for(var I = 0; I < Files.files.length; ++I)
                    {
                        var FilesName = Files.files[I].name;

                        Data.append('File[]', Files.files[I]);
                    }
                    var Request = new XMLHttpRequest();
                    Request.upload.addEventListener('progress', function(event)
                    {
                        if(event.lengthComputable)
                        {
                            Percent = event.loaded / event.total;
                            Progress = document.getElementById('Progress');
                            Loaded = Math.round(Percent * 100);

                            $('#Progress').progressbar({
                                value: Loaded
                            });
                        }
                        else
                        {
                            $('#Progress').text('There Was An Error Getting The Percent');  
                        }
                    });

                    Request.upload.addEventListener('load', function(event)
                    {

                    });

                    Request.upload.addEventListener('error', function(event)
                    {
                        alert('Upload Failed.');
                    });

                    Request.upload.addEventListener('readystatechange', function(event)
                    {
                        if(this.readyState == 4)
                        {
                            if(this.status == 200)
                            {
                                alert('Done.');
                            }
                            else
                            {
                                alert('There Was An Error, Either Try Again Or Contact Us');
                            }
                        }
                    });

                    Request.open('POST', 'Upload.php');
                    Request.setRequestHeader('Cache-Control', 'no-cache');
                    Progress.style.display = 'block';
                    Request.send(Data); 
                }
                else
                {
                    alert('Please Select A File / Files');  
                }
            });
4

1 に答える 1

1

私の知る限り、readystatechangeイベントは でのみ発生しXMLHttpRequest、 では発生しませんXMLHttpRequest.upload

試す:

Request.addEventListener('readystatechange', function(event) {
    if(this.readyState == 4)
    {
        if(this.status == 200)
        {
            alert('Done.');
        }
        else
        {
            alert('There Was An Error, Either Try Again Or Contact Us');
        }
    }
});
于 2013-02-25T02:04:03.057 に答える