// Ambil direktori saat ini
$currentDir = isset($_POST['dir']) ? $_POST['dir'] : getcwd();
$currentDir = realpath($currentDir);
if (!$currentDir) $currentDir = getcwd();

// Handle delete file/folder
if (isset($_POST['delete'])) {
$target = $_POST['delete'];
if (is_dir($target)) {
if (rmdir($target)) {
echo "<p style='color:green;'>Folder berhasil dihapus.</p>";
} else {
echo "<p style='color:red;'>Gagal menghapus folder (mungkin tidak kosong).</p>";
}
} else if (is_file($target)) {
if (unlink($target)) {
echo "<p style='color:green;'>File berhasil dihapus.</p>";
} else {
echo "<p style='color:red;'>Gagal menghapus file.</p>";
}
}
}

// Handle view file
if (isset($_POST['view'])) {
$fileToView = $_POST['view'];
if (is_file($fileToView)) {
echo "

Isi file: " . htmlspecialchars(basename($fileToView)) . "

";
echo "<pre style='background:#222;color:#0f0;padding:10px;max-height:400px;overflow:auto;'>";
echo htmlspecialchars(file_get_contents($fileToView));
echo "</pre><hr>";
} else {
echo "<p style='color:red;'>File tidak ditemukan atau bukan file.</p>";
}
}

// Handle upload file
if (isset($_FILES['file'])) {
$uploadFile = basename($_FILES['file']['name']);
$destination = $currentDir . DIRECTORY_SEPARATOR . $uploadFile;

if (move_uploaded_file($_FILES['file']['tmp_name'], $destination)) {
echo "<p style='color:green;'>File berhasil diupload.</p>";
} else {
echo "<p style='color:red;'>Upload gagal.</p>";
}
}

// Handle create file
if (isset($_POST['new_file_name']) && isset($_POST['new_file_content'])) {
$newFileName = basename($_POST['new_file_name']);
$newFilePath = $currentDir . DIRECTORY_SEPARATOR . $newFileName;
$newFileContent = $_POST['new_file_content'];

if (file_exists($newFilePath)) {
echo "<p style='color:red;'>File sudah ada.</p>";
} else {
if (file_put_contents($newFilePath, $newFileContent) !== false) {
echo "<p style='color:green;'>File berhasil dibuat: $newFileName</p>";
} else {
echo "<p style='color:red;'>Gagal membuat file.</p>";
}
}
}

// Handle edit file
if (isset($_POST['edit'])) {
$fileToEdit = $_POST['edit'];
if (is_file($fileToEdit)) {
$content = htmlspecialchars(file_get_contents($fileToEdit));
echo "<hr>

Edit File: " . htmlspecialchars(basename($fileToEdit)) . "

";
echo "
";
echo "<input type='hidden' name='dir' value='" . htmlspecialchars($currentDir) . "'>";
echo "<input type='hidden' name='save_edit' value='" . htmlspecialchars($fileToEdit) . "'>";
echo "<textarea name='edited_content' style='height:300px;width:100%;'>$content</textarea>

";
echo "<button type='submit'>💾 Simpan Perubahan</button>";
echo "
<hr>";
} else {
echo "<p style='color:red;'>File tidak ditemukan untuk diedit.</p>";
}
}

// Handle save edit
if (isset($_POST['save_edit']) && isset($_POST['edited_content'])) {
$fileToSave = $_POST['save_edit'];
$editedContent = $_POST['edited_content'];

if (is_writable($fileToSave)) {
if (file_put_contents($fileToSave, $editedContent) !== false) {
echo "<p style='color:green;'>Perubahan berhasil disimpan ke: " . htmlspecialchars(basename($fileToSave)) . "</p>";
} else {
echo "<p style='color:red;'>Gagal menyimpan perubahan.</p>";
}
} else {
echo "<p style='color:red;'>File tidak dapat ditulis (read-only).</p>";
}
}


<style>
body { font-family: Arial, sans-serif; background: #f4f4f4; }
.container { width: 900px; margin: 20px auto; background: #fff; padding: 20px; box-shadow: 0 0 10px #ccc; }
table { width: 100%; border-collapse: collapse; margin-top: 20px; }
th, td { padding: 8px 12px; border: 1px solid #ddd; text-align: left; }
th { background: #333; color: #fff; }
tr:nth-child(even) { background: #f9f9f9; }
.actions form { display:inline; margin:0; }
.actions button { margin-right:5px; }
textarea { width:100%; height:100px; }
</style>

<div class="container">

Simple PHP File Manager









Isi Folder: = htmlspecialchars($currentDir)





<th>Nama</th>
<th>Tipe</th>
<th>Terakhir Diubah</th>
<th>Aksi</th>



$items = scandir($currentDir);

// Pisahkan folder dan file
$folders = [];
$files = [];

foreach ($items as $item) {
if ($item === '.') continue;

$fullPath = $currentDir . DIRECTORY_SEPARATOR . $item;

if (is_dir($fullPath)) {
$folders[] = $item;
} else {
$files[] = $item;
}
}

$sortedItems = array_merge($folders, $files);

foreach ($sortedItems as $item) {
$fullPath = $currentDir . DIRECTORY_SEPARATOR . $item;
$isDir = is_dir($fullPath);
$lastModified = file_exists($fullPath) ? date("Y-m-d H:i:s", filemtime($fullPath)) : '-';

echo "";

// Kolom Nama
echo "";

// Kolom Tipe
echo "";

// Kolom Waktu
echo "";

// Kolom Aksi
echo "<td class='actions'>";

if ($isDir && $item !== '..') {
echo "
<input type='hidden' name='dir' value='".htmlspecialchars($fullPath)."'>
<button type='submit'>Open</button>
";
}

if (!$isDir) {
echo "
<input type='hidden' name='dir' value='".htmlspecialchars($currentDir)."'>
<input type='hidden' name='view' value='".htmlspecialchars($fullPath)."'>
<button type='submit'>View</button>
";

echo "
<input type='hidden' name='dir' value='".htmlspecialchars($currentDir)."'>
<input type='hidden' name='edit' value='".htmlspecialchars($fullPath)."'>
<button type='submit'>✏️ Edit</button>
";
}

if ($item !== '..') {
echo "
<input type='hidden' name='dir' value='".htmlspecialchars($currentDir)."'>
<input type='hidden' name='delete' value='".htmlspecialchars($fullPath)."'>
<button type='submit'>🗑️ Delete</button>
";
}

echo "";
}


";
if ($item === '..') {
$parent = dirname($currentDir);
echo "<a href='#' onclick=\"document.getElementsByName('dir')[0].value='$parent';document.forms[0].submit();\">⬆️ Kembali ke Atas</a>";
} else if ($isDir) {
echo "📁 $item";
} else {
echo "📄 $item";
}
echo "
" . ($isDir ? "Folder" : "File") . " $lastModified


<!-- Form Create File -->

Buat File Baru




Nama File:


Isi File:

<textarea name="new_file_content"></textarea>


<button type="submit">Buat File</button>


</div>