0

我正在尝试获取正在复制的文件的进度

最初,我使用以下代码发送请求以复制文件。一旦创建了文件。我发送响应成功 = 1 并开始复制过程并调用getProgress

   $.ajax({
     url:'copyFile.php',
     type: 'post',
     dataType: 'json',
     data: {'data':someData}, 
     success: function(data) {
       if(data.success){
         progressIndex=setInterval(getProgress, 1000 );
       }
     },
     error:function(err){
      console.log(err);
     }
   });


    function getProgress(){
    $.ajax({
     url:'FileUploadProgress.php',
     type: 'post',
     dataType: 'json',
     data: {'progress':'1'}, 
     success: function(data) {
       if(!data.success){
        clearTimeout(progressIndex);
       }
     },
     error:function(err){
      console.log(err);
     }
   });
}

文件上传进度.php

class FileUploadProgress{
   private $filename;
   private $progress;

 public function setfileProgress($filename,$progress){
    $this->filename=$filename;
  $this->progress=$progress;
  }

function returnProgress(){
   if(empty($this->filename) || empty($this->progress)){
     echo json_encode(array('success'=>'0'));
   }else{
echo json_encode(array('success'=>1,'filename'=>$this->filename,'progress'=>$this- 
>progress));
}
}

}
  $fileuploadprogress=new FileUploadProgress;
  if($_POST['progress']){

      $fileuploadprogress->returnProgress();
 }

在复制时获取进度并调用函数setfileProgress 来设置进度。同样在客户端,我已经请求了进度,但是我得到的是成功 = 0 并且 $this->progress 是空的我是否在我的代码中遗漏了任何内容。请告诉我

4

1 回答 1

0

您必须让路来查询某些数据源以获取您的进度状态。就像在某些数据库表或文件中转储进度状态等。

但是 PHP 有一些技巧,可以在某些环境中使用。
检查以下文档:会话上传进度

于 2013-10-26T10:45:19.130 回答