diff --git a/application/api/controller/Ota.php b/application/api/controller/Ota.php index af5bf85..6f6cd0f 100644 --- a/application/api/controller/Ota.php +++ b/application/api/controller/Ota.php @@ -111,17 +111,19 @@ class Ota extends Api * 构建 APK 下载 URL * * 客户端要求必须使用 HTTPS 协议,此处强制转换为 HTTPS。 + * 兼容数据库中可能出现的重复 /uploads/ 前缀。 * - * @param string $relativePath 相对路径(FastAdmin 已含 /uploads/ 前缀) + * @param string $relativePath 相对路径(可能含 /uploads/ 前缀) * @return string 完整 HTTPS URL */ private function buildApkUrl($relativePath) { $domain = request()->domain(); - // 强制使用 HTTPS,客户端要求 downloadUrl 必须以 https:// 开头 + // 强制使用 HTTPS $domain = preg_replace('/^http:\/\//i', 'https://', $domain); - // FastAdmin 存储的路径已含 /uploads/ 前缀,直接拼接即可 - return rtrim($domain, '/') . '/' . ltrim($relativePath, '/'); + // 去除重复的 /uploads/ 前缀(如 /uploads/uploads/ → /uploads/) + $relativePath = preg_replace('#^/?(uploads/)+#', 'uploads/', $relativePath); + return rtrim($domain, '/') . '/' . $relativePath; } /**