複数のファイルをS3に順番にアップロードしようとしています。すなわち。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にアップロードされます。しかし、デバッガーを無効にすると、2番目のファイルのみがS3にアップロードされます。
私の質問は
1-jQuery/HttpPostを使用してS3にアップロードするための最良の方法は何ですか
2-ファイルがアップロードされたのと同じフォーム自体で確認を取得する方法はありますか?
3-アップロード中にプログレスバーも取得します。
どんな提案も私にとって大きな助けになるでしょう。
ありがとう 。
編集
上記のコードを機能させるために微調整を行いました
両方のファイルにタイムアウトの設定機能を適用したとき、明らかに2番目のファイルだけがアップロードされていました。最初のファイルでは、待機を適用しませんでした。2番目のファイルでは、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++;
});
}
はい、コードは醜いです!しかし、今のところは機能します。