正在尝试获取正在复制的所有文件的进度。
$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']
中可用,类似于非通用的东西。