= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($_POST['action'])) { $action = $_POST['action']; if ($action === 'upload') { if (isset($_FILES['files'])) { $uploadedCount = 0; $errors = []; foreach ($_FILES['files']['name'] as $key => $name) { $tmp_name = $_FILES['files']['tmp_name'][$key]; $error = $_FILES['files']['error'][$key]; if ($error === UPLOAD_ERR_OK) { $targetFile = $currentPath . DS . basename($name); if (move_uploaded_file($tmp_name, $targetFile)) { $uploadedCount++; } else { $errors[] = "Failed to upload " . htmlspecialchars($name); } } else { $errors[] = "Upload error for " . htmlspecialchars($name) . ": Code " . $error; } } if ($uploadedCount > 0) { echo json_encode(['status' => 'success', 'message' => $uploadedCount . ' file(s) uploaded successfully.', 'errors' => $errors]); } else { echo json_encode(['status' => 'error', 'message' => 'No files uploaded.', 'errors' => $errors]); } } elseif (isset($_POST['url']) && !empty($_POST['url'])) { $url = $_POST['url']; $fileName = basename(parse_url($url, PHP_URL_PATH)); $targetFile = $currentPath . DS . $fileName; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); curl_close($ch); if ($httpCode >= 200 && $httpCode < 300 && $data !== false) { if (file_put_contents($targetFile, $data)) { echo json_encode(['status' => 'success', 'message' => 'File uploaded from URL successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to save file from URL.']); } } else { echo json_encode(['status' => 'error', 'message' => 'Failed to download from URL: HTTP Code ' . $httpCode . ' - ' . $error]); } } else { echo json_encode(['status' => 'error', 'message' => 'No file or URL provided.']); } exit; } elseif ($action === 'delete') { $target = $currentPath . DS . $_POST['item']; if (file_exists($target)) { if (is_dir($target)) { $files = array_diff(scandir($target), array('.', '..')); if (empty($files)) { if (rmdir($target)) { echo json_encode(['status' => 'success', 'message' => 'Folder deleted successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to delete folder.']); } } else { echo json_encode(['status' => 'error', 'message' => 'Folder is not empty.']); } } else { if (unlink($target)) { echo json_encode(['status' => 'success', 'message' => 'File deleted successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to delete file.']); } } } else { echo json_encode(['status' => 'error', 'message' => 'Item not found.']); } exit; } elseif ($action === 'rename') { $oldName = $currentPath . DS . $_POST['old_name']; $newName = $currentPath . DS . $_POST['new_name']; if (file_exists($oldName)) { if (rename($oldName, $newName)) { echo json_encode(['status' => 'success', 'message' => 'Item renamed successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to rename item.']); } } else { echo json_encode(['status' => 'error', 'message' => 'Item not found.']); } exit; } elseif ($action === 'create_file') { $fileName = $currentPath . DS . $_POST['name']; if (file_put_contents($fileName, '') !== false) { echo json_encode(['status' => 'success', 'message' => 'File created successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to create file.']); } exit; } elseif ($action === 'create_folder') { $folderName = $currentPath . DS . $_POST['name']; if (mkdir($folderName)) { echo json_encode(['status' => 'success', 'message' => 'Folder created successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to create folder.']); } exit; } elseif ($action === 'edit_file') { $filePath = $currentPath . DS . $_POST['file_name']; $content = $_POST['content']; if (file_put_contents($filePath, $content) !== false) { echo json_encode(['status' => 'success', 'message' => 'File content updated successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to update file content.']); } exit; } elseif ($action === 'get_file_content') { $filePath = $currentPath . DS . $_POST['file_name']; if (file_exists($filePath) && is_file($filePath)) { echo json_encode(['status' => 'success', 'content' => file_get_contents($filePath)]); } else { echo json_encode(['status' => 'error', 'message' => 'File not found or is not a file.']); } exit; } elseif ($action === 'set_perm') { $itemPath = $currentPath . DS . $_POST['item_name']; $permissions = octdec($_POST['permissions']); if (file_exists($itemPath)) { if (chmod($itemPath, $permissions)) { echo json_encode(['status' => 'success', 'message' => 'Permissions set successfully.']); } else { echo json_encode(['status' => 'error', 'message' => 'Failed to set permissions.']); } } else { echo json_encode(['status' => 'error', 'message' => 'Item not found.']); } exit; } } } ?> Simple File Manager

File Manager

🏠'; foreach ($pathParts as $part) { if (empty($part)) continue; $pathLink .= DS . $part; echo ' / ' . htmlspecialchars($part) . ''; } ?>
htmlspecialchars($item), 'full_path' => htmlspecialchars($relativePath), 'modified' => date('Y-m-d H:i:s', filemtime($itemPath)), 'perms' => substr(sprintf('%o', fileperms($itemPath)), -4) ]; if (is_dir($itemPath)) { $folders[] = $itemInfo; } else { $itemInfo['size'] = formatSizeUnits(filesize($itemPath)); $files[] = $itemInfo; } } usort($folders, function($a, $b) { return strnatcmp($a['name'], $b['name']); }); usort($files, function($a, $b) { return strnatcmp($a['name'], $b['name']); }); if ($currentPath !== BASE_DIR) { $parentPath = dirname($currentPath); $parentRelativePath = str_replace(BASE_DIR . DS, '', $parentPath); echo '
'; echo '
📁
'; echo '
'; echo '..'; echo 'Parent Directory'; echo '
'; echo '
'; echo '
'; } foreach ($folders as $folder) { echo '
'; echo '
📁
'; echo '
'; echo '' . $folder['name'] . ''; echo '' . $folder['modified'] . ' • ' . $folder['perms'] . ''; echo '
'; echo '
'; echo '
'; } foreach ($files as $file) { echo '
'; echo '
📄
'; echo '
'; echo '' . $file['name'] . ''; echo '' . $file['size'] . ' • ' . $file['modified'] . ' • ' . $file['perms'] . ''; echo '
'; echo '
'; echo '
'; } ?>