header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit; } } } else { $filename = $_GET['filename']; $extension = explode('.', $filename); $extension = $extension[1]; $mimeType = 'application/octet-stream'; switch ($extension) { case 'jpg': $mimeType = 'image/jpeg'; break; case 'avi': $mimeType = 'video/x-msvideo'; break; } header('Content-Description: File Transfer'); header('Content-Type: ' . $mimeType); header('Content-Disposition: attachment; filename=' . $file); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); echo _ajax($json[$_GET['camId']]['scheme'] . $json[$_GET['camId']]['host'] . ':' . $json[$_GET['camId']]['port'] . '/getFile.php?filename=' . $_GET['filename'], $json[$_GET['camId']]['login'], $json[$_GET['camId']]['password']); exit; } }
break; default: $res = []; foreach ($json as $key => $row) { if ($row['type'] == 'net') { $res[] = json_decode(_ajax($row['scheme'] . $row['host'] . ':' . $row['port'] . '/actions.php?action=', $row['login'], $row['password']), true); } else { $lastedetection = 'Never'; $laststart = 'Unknown'; $detectionstate = 'off'; $run = false; if (is_file($row['pid_file'])) { $res = true; $laststart = date("Y-m-d H:i:s", exec('stat -c %Y ' . $row['pid_file'])); $loginPassword = explode(':', exec('grep "webcontrol_authentication" /etc/motion.conf|cut -d" " -f 2')); $detectionstate = _ajax($row['scheme'] . $row['motionAdminUri'] . ':' . $row['port'] . '/actions.php?action=', $loginPassword[0], $loginPassword[1]); if (strpos($detectionstate, 'ACTIVE') > 0) { $detectionstate = 'active'; } else { $detectionstate = 'pause'; } } if (is_file($row['intrusion_file'])) { $date = file_get_contents($row['intrusion_file']); $lastedetection = date('Y-m-d H:i:s', $date); } $localData = array('run' => $run, 'lastedetection' => $lastedetection, 'laststart' => $laststart, 'lastrun' => date('Y-m-d H:i:s'), 'detectionstate' => $detectionstate); $res[] = $localData; } } echo json_encode($res);