<?php
// rat.php - آپلودر فایل APK (دسترسی عمومی)
session_start();

$upload_dir = 'assets/downloads/';
$target_file = $upload_dir . 'DIJE.apk';

// اگر فایل ارسال شده
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['apk_file'])) {
    $uploadOk = 1;
    $message = '';
    $file_name = basename($_FILES['apk_file']['name']);
    
    // بررسی نوع فایل
    $file_type = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
    if ($file_type != 'apk') {
        $message = '❌ فقط فایل‌های APK مجاز هستند.';
        $uploadOk = 0;
    }
    
    // بررسی سایز فایل (حداکثر 200 مگابایت)
    if ($_FILES['apk_file']['size'] > 200 * 1024 * 1024) {
        $message = '❌ حجم فایل نباید بیشتر از ۲۰۰ مگابایت باشد.';
        $uploadOk = 0;
    }
    
    // اگر همه چیز اوکی بود
    if ($uploadOk == 1) {
        // حذف فایل قبلی اگر وجود دارد
        if (file_exists($target_file)) {
            if (unlink($target_file)) {
                $message .= '♻️ فایل قبلی حذف شد. ';
            }
        }
        
        // اطمینان از وجود پوشه
        if (!is_dir($upload_dir)) {
            mkdir($upload_dir, 0777, true);
        }
        
        // آپلود فایل جدید
        if (move_uploaded_file($_FILES['apk_file']['tmp_name'], $target_file)) {
            $message .= '✅ فایل با موفقیت آپلود شد و نام آن به DIJE.apk تغییر کرد.';
            
            // تغییر مجوزها
            chmod($target_file, 0644);
            
            // لاگ کردن آپلود
            $log_data = [
                'timestamp' => date('Y-m-d H:i:s'),
                'ip' => $_SERVER['REMOTE_ADDR'],
                'user_agent' => $_SERVER['HTTP_USER_AGENT'],
                'original_name' => $file_name,
                'new_name' => 'DIJE.apk',
                'file_size' => $_FILES['apk_file']['size']
            ];
            
            $log_file = 'logs/uploads.log';
            if (!is_dir('logs')) {
                mkdir('logs', 0777, true);
            }
            
            file_put_contents($log_file, json_encode($log_data, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
            
        } else {
            $message = '❌ خطا در آپلود فایل. لطفاً مجدداً تلاش کنید.';
        }
    }
}
?>

<!DOCTYPE html>
<html lang="fa" dir="rtl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>آپلودر فایل APK - پنل مدیریت</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        :root {
            --primary: #4a69bd;
            --secondary: #6a89cc;
            --success: #27ae60;
            --danger: #e74c3c;
            --warning: #f39c12;
            --dark: #2c3e50;
            --light: #f8f9fa;
        }
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: 'Segoe UI', Tahoma, Arial, sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 20px;
            color: #333;
        }
        
        .container {
            width: 100%;
            max-width: 600px;
            background: white;
            border-radius: 30px;
            padding: 40px 35px;
            box-shadow: 0 25px 60px rgba(0, 0, 0, 0.25);
            text-align: center;
            animation: fadeIn 0.6s ease-out;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(30px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .logo {
            width: 120px;
            height: 120px;
            background: linear-gradient(135deg, var(--primary), var(--secondary));
            border-radius: 30px;
            margin: 0 auto 35px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 50px;
            animation: float 4s ease-in-out infinite;
            box-shadow: 0 15px 35px rgba(74, 105, 189, 0.3);
        }
        
        @keyframes float {
            0%, 100% { transform: translateY(0) rotate(0); }
            50% { transform: translateY(-20px) rotate(5deg); }
        }
        
        h1 {
            color: var(--dark);
            margin-bottom: 12px;
            font-size: 32px;
            font-weight: 800;
        }
        
        .subtitle {
            color: #666;
            margin-bottom: 35px;
            font-size: 16px;
            line-height: 1.6;
        }
        
        /* پیام */
        .message-box {
            margin-bottom: 30px;
            animation: slideDown 0.5s ease-out;
        }
        
        @keyframes slideDown {
            from { opacity: 0; transform: translateY(-20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .message {
            padding: 18px 25px;
            border-radius: 18px;
            font-size: 15px;
            font-weight: 600;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 15px;
            box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
        }
        
        .message.success {
            background: linear-gradient(135deg, #d4fc79 0%, #96e6a1 100%);
            color: #155724;
            border: 3px solid #27ae60;
        }
        
        .message.error {
            background: linear-gradient(135deg, #ffecd2 0%, #fcb69f 100%);
            color: #721c24;
            border: 3px solid #e74c3c;
        }
        
        /* فرم آپلود */
        .upload-form {
            margin: 35px 0;
        }
        
        .file-input-wrapper {
            position: relative;
            margin-bottom: 30px;
        }
        
        .file-input {
            position: absolute;
            width: 100%;
            height: 100%;
            opacity: 0;
            cursor: pointer;
            z-index: 10;
        }
        
        .file-label {
            display: block;
            background: #f8f9ff;
            border: 4px dashed #e8edff;
            border-radius: 25px;
            padding: 60px 30px;
            color: #666;
            transition: all 0.4s;
            position: relative;
            overflow: hidden;
        }
        
        .file-label:hover {
            background: #f0f4ff;
            border-color: var(--primary);
            transform: translateY(-5px);
            box-shadow: 0 20px 40px rgba(74, 105, 189, 0.15);
        }
        
        .file-label i {
            font-size: 70px;
            color: var(--primary);
            margin-bottom: 20px;
            display: block;
            transition: all 0.3s;
        }
        
        .file-label:hover i {
            transform: scale(1.1);
            color: var(--secondary);
        }
        
        .file-label span {
            font-size: 20px;
            font-weight: 700;
            display: block;
            margin-bottom: 10px;
            color: var(--dark);
        }
        
        .file-info {
            font-size: 14px;
            color: #888;
            line-height: 1.6;
        }
        
        /* نمایش فایل انتخاب شده */
        .selected-file {
            background: #f0f9ff;
            border: 3px solid #a5d8ff;
            border-radius: 20px;
            padding: 25px;
            margin-top: 25px;
            text-align: right;
            display: none;
            animation: slideUp 0.5s ease-out;
        }
        
        @keyframes slideUp {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
        
        .selected-file h3 {
            color: var(--primary);
            margin-bottom: 15px;
            font-size: 18px;
            display: flex;
            align-items: center;
            gap: 12px;
        }
        
        .file-details {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
        }
        
        .detail-item {
            background: white;
            padding: 15px;
            border-radius: 15px;
            border: 2px solid #e8edff;
        }
        
        .detail-label {
            font-size: 12px;
            color: #666;
            margin-bottom: 8px;
        }
        
        .detail-value {
            font-size: 15px;
            font-weight: 700;
            color: var(--dark);
            word-break: break-all;
        }
        
        /* دکمه آپلود */
        .upload-btn {
            width: 100%;
            background: linear-gradient(135deg, var(--success), #2ecc71);
            color: white;
            border: none;
            padding: 25px;
            border-radius: 18px;
            font-size: 22px;
            font-weight: 800;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 15px;
            transition: all 0.3s;
            box-shadow: 0 15px 35px rgba(39, 174, 96, 0.3);
            position: relative;
            overflow: hidden;
            margin-top: 30px;
        }
        
        .upload-btn:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 40px rgba(39, 174, 96, 0.4);
        }
        
        .upload-btn:active {
            transform: translateY(-2px);
        }
        
        .upload-btn:disabled {
            opacity: 0.6;
            cursor: not-allowed;
            transform: none !important;
        }
        
        .button-shimmer {
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            animation: shimmer 3s infinite;
        }
        
        @keyframes shimmer {
            0% { left: -100%; }
            100% { left: 100%; }
        }
        
        /* پنل اطلاعات */
        .info-panel {
            background: linear-gradient(135deg, #fff5f5, #fff);
            border: 3px solid #ffeaea;
            border-radius: 25px;
            padding: 30px;
            margin-top: 40px;
            text-align: right;
            animation: fadeIn 0.8s ease-out;
        }
        
        .info-panel h2 {
            color: var(--danger);
            margin-bottom: 25px;
            font-size: 20px;
            display: flex;
            align-items: center;
            gap: 15px;
        }
        
        .info-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 20px;
        }
        
        .info-box {
            background: white;
            padding: 20px;
            border-radius: 18px;
            border: 2px solid #ffeaea;
            transition: all 0.3s;
        }
        
        .info-box:hover {
            border-color: var(--warning);
            transform: translateY(-3px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }
        
        .info-label {
            font-size: 13px;
            color: #666;
            margin-bottom: 8px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .info-value {
            font-size: 16px;
            font-weight: 700;
            color: var(--dark);
            direction: ltr;
            font-family: monospace;
        }
        
        /* دکمه‌های اکشن */
        .action-buttons {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
            margin-top: 30px;
        }
        
        .action-btn {
            padding: 18px;
            border-radius: 15px;
            font-size: 16px;
            font-weight: 700;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            transition: all 0.3s;
            border: 3px solid transparent;
            text-decoration: none;
        }
        
        .action-btn.delete {
            background: #fff5f5;
            color: var(--danger);
            border-color: #ffcccc;
        }
        
        .action-btn.download {
            background: #f0f9ff;
            color: var(--primary);
            border-color: #a5d8ff;
        }
        
        .action-btn:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
        }
        
        /* رسپانسیو */
        @media (max-width: 768px) {
            .container {
                padding: 30px 20px;
                border-radius: 25px;
            }
            
            .logo {
                width: 100px;
                height: 100px;
                font-size: 40px;
            }
            
            h1 {
                font-size: 28px;
            }
            
            .file-label {
                padding: 40px 20px;
            }
            
            .file-label i {
                font-size: 50px;
            }
            
            .file-label span {
                font-size: 18px;
            }
            
            .file-details {
                grid-template-columns: 1fr;
            }
            
            .info-grid {
                grid-template-columns: 1fr;
            }
            
            .upload-btn {
                padding: 22px;
                font-size: 20px;
            }
            
            .action-buttons {
                grid-template-columns: 1fr;
            }
        }
        
        @media (max-width: 480px) {
            .container {
                padding: 25px 15px;
            }
            
            .logo {
                width: 80px;
                height: 80px;
                font-size: 30px;
            }
            
            h1 {
                font-size: 24px;
            }
            
            .file-label {
                padding: 30px 15px;
            }
        }
        
        /* انیمیشن‌های اضافی */
        .pulse {
            animation: pulse 2s infinite;
        }
        
        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.8; }
        }
        
        .rotate {
            animation: rotate 20s linear infinite;
        }
        
        @keyframes rotate {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="logo">
            <i class="fas fa-cloud-upload-alt"></i>
        </div>
        
        <h1>آپلودر فایل APK</h1>
        <p class="subtitle">
            فایل APK خود را انتخاب کنید. پس از آپلود، نام آن به <strong>DIJE.apk</strong> تغییر می‌کند.
            <br>فایل قبلی (در صورت وجود) به طور خودکار حذف می‌شود.
        </p>
        
        <?php if (isset($message)): ?>
            <div class="message-box">
                <div class="message <?php echo strpos($message, '✅') !== false ? 'success' : 'error'; ?>">
                    <i class="fas <?php echo strpos($message, '✅') !== false ? 'fa-check-circle' : 'fa-exclamation-circle'; ?>"></i>
                    <span><?php echo $message; ?></span>
                </div>
            </div>
        <?php endif; ?>
        
        <form method="POST" enctype="multipart/form-data" class="upload-form" id="uploadForm">
            <div class="file-input-wrapper">
                <input type="file" 
                       name="apk_file" 
                       id="apkFile" 
                       class="file-input" 
                       accept=".apk"
                       required>
                <label for="apkFile" class="file-label pulse">
                    <i class="fas fa-file-upload"></i>
                    <span>برای انتخاب فایل کلیک کنید</span>
                    <div class="file-info">
                        فرمت مجاز: APK • حداکثر حجم: ۲۰۰ مگابایت
                        <br>فایل انتخابی شما به <strong>DIJE.apk</strong> تغییر نام می‌دهد
                    </div>
                </label>
            </div>
            
            <div id="selectedFile" class="selected-file">
                <h3>
                    <i class="fas fa-file-alt"></i>
                    فایل انتخاب شده
                </h3>
                <div class="file-details">
                    <div class="detail-item">
                        <div class="detail-label">نام فایل:</div>
                        <div class="detail-value" id="fileName">--</div>
                    </div>
                    <div class="detail-item">
                        <div class="detail-label">حجم فایل:</div>
                        <div class="detail-value" id="fileSize">--</div>
                    </div>
                    <div class="detail-item">
                        <div class="detail-label">نوع فایل:</div>
                        <div class="detail-value" id="fileType">--</div>
                    </div>
                    <div class="detail-item">
                        <div class="detail-label">نام نهایی:</div>
                        <div class="detail-value" id="finalName">DIJE.apk</div>
                    </div>
                </div>
            </div>
            
            <button type="submit" class="upload-btn" id="uploadBtn" disabled>
                <div class="button-shimmer"></div>
                <i class="fas fa-cloud-upload-alt"></i>
                آپلود و تغییر نام فایل
            </button>
        </form>
        
        <!-- پنل اطلاعات -->
        <div class="info-panel">
            <h2>
                <i class="fas fa-info-circle"></i>
                اطلاعات سیستم
            </h2>
            
            <div class="info-grid">
                <div class="info-box">
                    <div class="info-label">
                        <i class="fas fa-network-wired"></i>
                        آی‌پی شما:
                    </div>
                    <div class="info-value"><?php echo $_SERVER['REMOTE_ADDR']; ?></div>
                </div>
                
                <div class="info-box">
                    <div class="info-label">
                        <i class="fas fa-hdd"></i>
                        وضعیت فایل:
                    </div>
                    <div class="info-value">
                        <?php 
                        if (file_exists($target_file)) {
                            $size = filesize($target_file);
                            echo 'موجود (' . formatSize($size) . ')';
                        } else {
                            echo 'فایل وجود ندارد';
                        }
                        ?>
                    </div>
                </div>
                
                <div class="info-box">
                    <div class="info-label">
                        <i class="fas fa-clock"></i>
                        زمان سرور:
                    </div>
                    <div class="info-value"><?php echo date('Y-m-d H:i:s'); ?></div>
                </div>
                
                <div class="info-box">
                    <div class="info-label">
                        <i class="fas fa-folder"></i>
                        مسیر ذخیره:
                    </div>
                    <div class="info-value">assets/downloads/</div>
                </div>
            </div>
            
            <div class="action-buttons">
                <button type="button" class="action-btn delete" onclick="deleteFile()">
                    <i class="fas fa-trash-alt"></i>
                    حذف فایل فعلی
                </button>
                
                <a href="<?php echo file_exists($target_file) ? $target_file : '#'; ?>" 
                   class="action-btn download" 
                   <?php echo file_exists($target_file) ? 'download="DIJE.apk"' : 'onclick="return false;"'; ?>>
                    <i class="fas fa-download"></i>
                    دانلود فایل
                </a>
            </div>
        </div>
    </div>
    
    <script>
        // تابع فرمت حجم فایل
        function formatSize(bytes) {
            if (bytes === 0) return '0 B';
            const k = 1024;
            const sizes = ['B', 'KB', 'MB', 'GB'];
            const i = Math.floor(Math.log(bytes) / Math.log(k));
            return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i];
        }
        
        // نمایش اطلاعات فایل انتخاب شده
        document.getElementById('apkFile').addEventListener('change', function(e) {
            const file = e.target.files[0];
            const selectedFileDiv = document.getElementById('selectedFile');
            const uploadBtn = document.getElementById('uploadBtn');
            
            if (file) {
                // نمایش اطلاعات
                document.getElementById('fileName').textContent = file.name;
                document.getElementById('fileSize').textContent = formatSize(file.size);
                document.getElementById('fileType').textContent = file.type || 'APK';
                
                // نمایش بخش اطلاعات
                selectedFileDiv.style.display = 'block';
                uploadBtn.disabled = false;
                
                // اعتبارسنجی
                const maxSize = 200 * 1024 * 1024; // 200MB
                const isAPK = file.name.toLowerCase().endsWith('.apk');
                
                if (!isAPK) {
                    alert('❌ فقط فایل‌های با فرمت APK قابل آپلود هستند!');
                    uploadBtn.disabled = true;
                    return;
                }
                
                if (file.size > maxSize) {
                    alert('❌ حجم فایل نباید بیشتر از ۲۰۰ مگابایت باشد!');
                    uploadBtn.disabled = true;
                    return;
                }
                
                // اگر همه چیز اوکی بود
                uploadBtn.innerHTML = '<div class="button-shimmer"></div><i class="fas fa-cloud-upload-alt"></i> آپلود و تغییر نام فایل';
            }
        });
        
        // شبیه‌سازی پیشرفت بار هنگام آپلود
        document.getElementById('uploadForm').addEventListener('submit', function(e) {
            const fileInput = document.getElementById('apkFile');
            const uploadBtn = document.getElementById('uploadBtn');
            
            if (!fileInput.files.length) {
                e.preventDefault();
                alert('لطفاً فایلی را انتخاب کنید!');
                return;
            }
            
            // نمایش حالت لودینگ
            const originalText = uploadBtn.innerHTML;
            uploadBtn.innerHTML = '<i class="fas fa-spinner fa-spin"></i> در حال آپلود...';
            uploadBtn.disabled = true;
            
            // فرم ارسال می‌شود
        });
        
        // حذف فایل فعلی
        function deleteFile() {
            if (!confirm('⚠️ آیا از حذف فایل DIJE.apk اطمینان دارید؟')) {
                return;
            }
            
            fetch('delete-file.php')
                .then(response => response.json())
                .then(data => {
                    if (data.success) {
                        alert('✅ ' + data.message);
                        location.reload();
                    } else {
                        alert('❌ ' + data.message);
                    }
                })
                .catch(error => {
                    alert('❌ خطا در ارتباط با سرور');
                });
        }
        
        // نمایش پیام خوش‌آمد
        console.log('🌐 آپلودر APK - دسترسی عمومی');
        console.log('📁 پوشه مقصد: assets/downloads/DIJE.apk');
        console.log('🔓 دسترسی: عمومی برای همه IP‌ها');
    </script>
</body>
</html>

<?php
// تابع کمکی برای فرمت حجم
function formatSize($bytes) {
    if ($bytes == 0) return "0 B";
    $k = 1024;
    $sizes = ["B", "KB", "MB", "GB"];
    $i = floor(log($bytes) / log($k));
    return number_format($bytes / pow($k, $i), 2) . " " . $sizes[$i];
}
?>