文件复制进度会话数据为空


file copy progress session data is null

正在尝试获取正在复制的所有文件的进度。

    $qryStr = explode(",",$_POST['data']);
$timestamp=$_POST['timestamp'];
$size=sizeof($qryStr);
//echo $size;
$offset=100/$size;
$progress=0;
$_SESSION[$timestamp]=$progress;
session_start();
foreach($qryStr as $value) {
    $src = $value;
    $dest = "../home/tmp/";
    $cmd = 'scp '.$src.' '.$dest.'';
    sleep(1);
    $progress+=$offset;
    $_SESSION[$timestamp] = ceil($progress);
    var_dump($_SESSION[$timestamp]);
    $result = shell_exec($cmd);
 }

用于获取存储在会话中的进度的代码

    session_start();
    var_dump($_SESSION['timestamp']);
     getProgress($_GET['timestamp']);
    function getProgress($timestamp) {
        if (isset($_SESSION[$timestamp])) {
        echo json_encode(array("progress" => $_SESSION[$timestamp]));
      } else {
      echo json_encode(array("progress" => -1));
  }
 }

当我尝试访问会话数据时,我将其显示为空。 我的脚本中有任何问题。

您在以下行中使用了$timestamp

$_SESSION[$timestamp] = ceil($progress);

相反,请使用

$_SESSION['timestamp'] = ceil($progress);

只有这样,它才会在$_SESSION['timestamp']中可用,否则将在$_SESSION['2013-10-28 14:33:00']中可用,类似于非通用的东西。