我一直在尝试以顺序方式将多个文件上传到 S3。IE 。2个文件A和B
上传文件 A(成功时不重定向)然后上传文件 B(更大的文件)并在成功时重定向。
function StartPosting(data) {
var s3JsonList = JSON.parse(data.s3Json);
PopupSpinner();
$.each(s3JsonList, function (k, v) {
HttpPostToS3(k, v);
});
}
function HttpPostToS3(key, value) {
document.getElementById(key + 'S3SubmitDiv').innerHTML = value;//This sets the Post variables in the order. Also key + 'S3SubmitDiv'
setTimeout(function () {
jQuery('#' + key + 'form').submit();
}, 3000);
}
基本上有 2 种形式,每种形式都适用于各自的文件。会发生什么,如果我放置一个调试器,两个文件都以调试模式上传到 S3。但是当我禁用调试器时,只有第二个文件上传到 S3。
我的问题是
1-使用 jQuery/HttpPost 上传到 S3 的最佳方式是什么
2-有没有办法以文件已上传的相同形式获得确认?
3-上传时还可以看到进度条。
任何建议都会对我有很大帮助。
谢谢 。
编辑
我刚刚进行了调整以使上述代码正常工作
当我对这两个文件应用设置超时功能时,显然只有第二个文件被上传。对于第一个文件,我没有申请任何等待。对于第二个文件,我等待了 5 秒。
function StartPosting(data) {
var i = 0;
var s3JsonList = JSON.parse(data.s3Json);
PopupSpinner();
$.each(s3JsonList, function (k, v) {
if (i == 0) {
HttpPostToS3(k, v);
}
else {
setTimeout(function () {
HttpPostToS3(k, v);
}, 5000);
}
i++;
});
}
是的,代码很丑!!但它现在才有效。