在下面的代码示例中,我尝试使用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!");
}
}
如果您对我如何解决问题有任何建议,请随时回复。