5) unlink($dirname.$entry); } closedir($dir); } else { error_log("Cannot open upload dir for cleaning"); } // Ping servers $result = []; foreach (getServers() as $i => $attrs) { $success = false; foreach ($attrs["ports"] as $port => $unused) { if (pingServer($i, $port)) { $success = true; break; } } $result[$i] = $success; } $result = array( "result" => $result, "date" => time() ); writeServersState($result); break; case "file": require_once(".htconfig.php"); if (!isset($_GET["from"]) || strlen($_GET["from"]) == 0 || !isset($_FILES["file"])) { header("HTTP/1.0 400 Bad Request"); die("Bad Request"); } $extensionLocal = strrpos($_FILES["file"]["name"], '.'); $extension = strtolower(substr($_FILES["file"]["name"], $extensionLocal === FALSE ? 0 : $extensionLocal)); if (strpos($_FILES["file"]["type"], "image/") !== 0 || !in_array($extension, array( ".png", ".jpg", ".jpeg", ".ico"))) { header("HTTP/1.0 400 Bad Request"); die("Unrecognized file type"); } if ($_FILES["file"]["size"] > MAX_ALLOWED_UPLOAD_SIZE) { header("HTTP/1.0 400 Bad Request"); die("File is too large (max " .MAX_ALLOWED_UPLOAD_SIZE ."o, got " .$_FILES["file"]["size"] .')'); } $filename = md5($_GET["from"].time()) .$extension; if (move_uploaded_file($_FILES["file"]["tmp_name"], getcwd()."/uploads/".$filename) === FALSE) { header("HTTP/1.0 500 Internal Server Error"); die("Internal Server Error"); } // Log info error_log($_GET["from"] ." uploaded file " .$filename ." " .print_r($_FILES["file"], true) ." from " .$_SERVER["REMOTE_ADDR"]); echo "/uploads/" .$filename; break; } } ?>