我正在尝试获取所有正在复制的文件的进度。
$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));
}
}
当我尝试访问会话数据时,我将其作为null。我脚本中的任何问题。
答案 0 :(得分:0)
您在以下行中使用了$timestamp
$_SESSION[$timestamp] = ceil($progress);
相反,请使用
$_SESSION['timestamp'] = ceil($progress);
只有这样才能在$_SESSION['timestamp']
中使用,否则将在$_SESSION['2013-10-28 14:33:00']
中,类似于非通用的内容。