0

複数のファイルを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++;
});

}

はい、コードは醜いです!しかし、今のところは機能します。

4

1 に答える 1

0

Uploadifyを試してみてください

これらの記事はあなたに十分な情報を提供します:

Uploadifyを使用してAmazonS3に直接POSTする

http://www.flynsarmy.com/2011/03/upload-to-amazon-s3-with-uploadify/

http://www.uploadify.com/forum/#/discussion/4713/amazon-s3-and-uploadify-sample/p1

于 2012-09-26T04:09:09.980 に答える