AJAX并行上传多个文件

时间:2011-11-18 12:11:42

标签: ajax file-upload xmlhttprequest

有这个功能:

function uploadFile(f, parent) {

    var xhr = new XMLHttpRequest();

    xhr.upload.addEventListener("progress", function (event) { uploadProgress(event, parent); }, false);
    xhr.upload.addEventListener("load", function (event) { uploadComplete(event, parent); }, false);
    xhr.upload.addEventListener("error", uploadFailed, false);
    xhr.upload.addEventListener("abort", uploadCanceled, false);

    xhr.open("POST", "Upload.aspx", true);
    //xhr.setRequestHeader("Cache-Control", "no-cache");
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.setRequestHeader("Content-Type", "multipart/form-data");
    xhr.setRequestHeader("X-File-Name", f.name);
    xhr.setRequestHeader("X-File-Size", f.fileSize);
    xhr.send(f); 
}

参数" f"该函数是一个出现在drop事件上的文件(event.dataTransfer.files [0]) 问题是我有多个元素触发drop事件(并隐式调用uploadFile函数),但上传不是并行完成的。首先上传第一个删除的文件,上传完成后,才上传第二个文件。为什么文件并不上传?

谢谢!

1 个答案:

答案 0 :(得分:1)

这是使用客户端脚本完成的,根据定义是单线程的 - 一次一件事,本质上。