2013-06-27 104 views
5

我正在使用blueimp jquery文件上傳器與Amazon S3一起使用。我唯一的問題是,我無法根據圖像上傳的服務器端狀態準確更新我的進度條。blueimp文件上傳服務器端PHP進度進度

我還使用PHP(5.3)的舊版本,是否有解決方案或解決方法,我可以用來檢索服務器端進度?

這是我目前正在調用的jQuery:

var url = 'photos/index.php'; 

    $('#fileupload').fileupload({ 
     url: url, 
     dataType: 'json', 
     done: function (e, data) { 

      $.each(data.result.files, function (index, file) { 
       // display the image preview 
      }); 
     }, 
     progressall: function (e, data) { 

      //console.log(data); 
      var progress = parseInt(data.loaded/data.total * 100, 10); 
      $('#progress .bar').css(
       'width', 
       progress + '%' 
      ); 
     } 
    }); 
+0

您是否使用https://github.com/blueimp/jQuery-File-Upload/wiki上的示例之一對其進行了嘗試?你可能也想提供一些你的php代碼。 –

回答

1

如果您直接上傳您的文件直接到S3存儲通過你的PHP代碼,那麼就不可能顯示上傳進度。亞馬遜S3目前不支持這一點。如果您想顯示任何上傳進度,請顯示服務器的上傳進度。之後,將上傳的文件從服務器移至S3 Bucket。但通過這種方式,進度條需要一段時間才能完成98%-100%,因爲在那段時間內只有上傳的文件將被移至S3。

+0

並非不可能,您可以使用Ajax在現代瀏覽器中顯示上傳進度:http://www.dave-bond.com/blog/2010/01/JQuery-ajax-progress-HMTL5/ – Petah

+0

Petah,我同意您可以顯示上傳進度,但僅限於服務器的進度。由於CORS策略,您無法在沒有flash或java的情況下顯示S3文件上傳進度。 http://stackoverflow.com/questions/6543292/how-to-upload-files-directly-to-s3-using-php-and-with-progress-bar/#answer-7176472 – sincerekamal