0

我有一个可以工作的文件上传器,因为文件和变量正在被上传,并且完整的处理程序被触发,当上传完成时..但是进度处理程序不是..有什么想法为什么不呢?...关于Ĵ

    function uploadFile_function(){
    var formData = new FormData();
    formData.append("var1", "jane"); 
    formData.append("varFile", fileToUpload);

    var xhr = new XMLHttpRequest();
    xhr.open("POST", "upload.php");  

    xhr.addEventListener("progress", function (ev) {
        alert('progress');
    }, false);

    xhr.addEventListener("load", function (ev) {
        alert('complete');
    }, false);

    xhr.send(formData);
}
4

2 回答 2

1

您需要在调用 xhr.open 之前调用事件侦听器。

于 2012-07-20T16:11:24.127 回答
1

下载和上传传输都存在进度事件。下载事件在 XMLHttpRequest 对象本身上触发,如上面的示例所示。上传事件在 XMLHttpRequest.upload 对象上触发,如下所示:

function uploadFile_function(){
    var formData = new FormData();
    formData.append("var1", "trip"); 
    formData.append("varFile", fileToUpload);

    var xhr = new XMLHttpRequest();

    xhr.upload.addEventListener("progress", function (ev) {
        alert('progress');
    }, false);

    xhr.upload.addEventListener("load", function (ev) {
        alert('complete');
    }, false);

    xhr.open("POST", "upload.php");  
    xhr.send(formData);
}
于 2012-07-20T17:48:09.620 回答