使用XMLHttpRequest()和Aws S3上传多个文件

时间:2015-05-26 14:59:02

标签: javascript ajax amazon-s3 xmlhttprequest form-data

在下面的代码示例中,我尝试使用FormData和XMLHttpRequest将多个文件上传到Aws S3存储桶。我打算使用Aws Multipart Upload将大文件发送到存储桶。仅在选择一个文件时才有效。我的问题是在调用onreadystatechange期间进行的。它不会发送多个文件到uploadPart部分,而只会发送最新的文件。我希望异步运行上传。

function uploadFile(){
    files = _("file").files;
    for (var i = 0; i < files.length; i++){
        file = files[i];
        ownerName = _("name").value;

        var formdata = new FormData();
        formdata.append("command", 'CreateMultipartUpload');
        formdata.append("filename", file.name);
        formdata.append("fileindex", i);
        formdata.append("name", ownerName);
        var ajax = new XMLHttpRequest();
        ajax.open("POST", "FileUploader.php", true);
        ajax.send(formdata);
        ajax.onreadystatechange = function() {
            if (ajax.readyState === 4) {
                var sendBackData = JSON.parse(ajax.responseText);
                uploadPart(sendBackData, 1);
            }
        };
        console.log("Superman!");
    }
}

如果您对我如何解决问题有任何建议,请随时回复。

0 个答案:

没有答案