2013-06-27 78 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