0

我一直在尝试以顺序方式将多个文件上传到 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++;
});

}

是的,代码很丑!!但它现在才有效。

4

1 回答 1