无法获得文件复制进度

时间:2013-10-26 09:19:50

标签: javascript php jquery

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

最初我使用以下代码发送复制文件的请求。一旦文件被创建。我发送响应成功= 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);
     }
   });
}

FileUploadProgress.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->进度是空的   我在代码中遗漏了什么。请让我知道

1 个答案:

答案 0 :(得分:0)

您必须让位于查询某些数据源以获取进度状态。 就像在某些DB表或文件中转储进度状态一样。

然而,PHP有一些黑客攻击,在某些环境中有效 请查看以下文档:Session Upload Progress