使用JQuery将多个文件上载到S3

时间:2012-09-26 03:41:54

标签: jquery amazon-s3 http-post

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

}

基本上有两种形式,每种形式都适用于相应的文件。 会发生什么,如果我把调试器两个文件都以调试模式上传到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++;
});

}

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