prepare("SELECT country FROM drivers WHERE id = ?"); $stmt->execute([$driverID]); $country = strtolower(trim((string)$stmt->fetchColumn())); } catch (Exception $e) { $country = ''; } } if (empty($country)) { $country = 'jordan'; } } if (!in_array($country, ['syria', 'jordan', 'egypt'])) { $country = 'jordan'; } // --------- بادئة اسم الملف --------- $prefix = !empty($driverID) ? $driverID : 'unregistered'; uploadLog("📥 Params: driverID=" . ($driverID ?: 'null') . ", imageType=$imageType, country=$country"); // --------- رفع الملف --------- $targetDir = __DIR__ . "/../../auth/uploads/{$country}/"; $result = uploadImageSecure('image', $targetDir, $prefix . '_' . $imageType); if (!$result['success']) { uploadLog("❌ Upload failed: {$result['error']}", 'ERROR', [ 'driverID' => $driverID, 'imageType' => $imageType, 'country' => $country, ]); jsonError($result['error']); } // --------- إزالة العشوائية من اسم الملف --------- // الاسم يكون فقط: {driverID}_{imageType}.jpg (بدون random hex) $ext = pathinfo($result['filename'], PATHINFO_EXTENSION); $simpleName = $prefix . '_' . $imageType . '.' . $ext; $simplePath = rtrim($targetDir, '/') . '/' . $simpleName; if (file_exists($simplePath)) { unlink($simplePath); // overwrite } rename($result['path'], $simplePath); $result['filename'] = $simpleName; $result['path'] = $simplePath; // --------- بناء الرابط العام --------- $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http'; $host = getenv('APP_DOMAIN') ?: ($_SERVER['HTTP_HOST'] ?? 'api.siromove.com'); $basePath = rtrim(dirname(dirname(dirname($_SERVER['SCRIPT_NAME']))), '/'); $url = "$protocol://$host{$basePath}/auth/uploads/{$country}/{$result['filename']}"; uploadLog("✅ Uploaded: {$result['path']} -> $url", 'INFO', [ 'driverID' => ($driverID ?: 'null'), 'imageType' => $imageType, 'country' => $country, ]); jsonSuccess([ 'url' => $url, 'file_link' => $url, 'filename' => $result['filename'], 'driverID' => ($driverID ?: ''), 'imageType' => $imageType, 'country' => $country, ]);