fix(ota): 修复APK下载URL构建中的重复路径前缀问题

- 兼容数据库中可能出现的重复 /uploads/ 前缀
- 更新相对路径参数描述,支持可能含 /uploads/ 前缀的情况
- 移除强制HTTPS协议的冗余注释
- 添加正则表达式去除重复的 /uploads/ 前缀
- 简化路径拼接逻辑,避免重复前缀导致的URL错误
This commit is contained in:
2026-04-10 10:31:06 +08:00
parent be72e73423
commit 88ec58a15a

View File

@@ -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;
}
/**