如何在上传文件VIA XMLHttpRequest时取得进展

时间:2011-09-14 00:15:49

标签: javascript html5 filereader fileapi

我想知道如何使用XMLHTTPRequest获取文件上传的进度。在Firefox中,onprogress方法根本不会触发,而在chrome中,它只会在文件上传完成后触发。

function fileUpload(file)
{
    var formData = new FormData();
    formData.append('file', file);

    var xhr = new XMLHttpRequest();
    xhr.onprogress = function(e)
    {
        alert('progress');
    };

    xhr.open('POST', 'post.php', true);

    xhr.send(formData);  // multipart/form-data
}

1 个答案:

答案 0 :(得分:7)

试试xhr.upload.onprogress。在XMLHttpRequest2规范中,XMLHttpRequest具有上传属性。

  

注册进度事件的能力。两者都用于下载(放   XMLHttpRequest对象本身的监听器)和上传(put   上传返回的XMLHttpRequestUpload对象上的侦听器   属性)。   http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#differences