fix(ota): 修复APK下载URL构建中的重复路径前缀问题
- 兼容数据库中可能出现的重复 /uploads/ 前缀 - 更新相对路径参数描述,支持可能含 /uploads/ 前缀的情况 - 移除强制HTTPS协议的冗余注释 - 添加正则表达式去除重复的 /uploads/ 前缀 - 简化路径拼接逻辑,避免重复前缀导致的URL错误
This commit is contained in:
@@ -111,17 +111,19 @@ class Ota extends Api
|
|||||||
* 构建 APK 下载 URL
|
* 构建 APK 下载 URL
|
||||||
*
|
*
|
||||||
* 客户端要求必须使用 HTTPS 协议,此处强制转换为 HTTPS。
|
* 客户端要求必须使用 HTTPS 协议,此处强制转换为 HTTPS。
|
||||||
|
* 兼容数据库中可能出现的重复 /uploads/ 前缀。
|
||||||
*
|
*
|
||||||
* @param string $relativePath 相对路径(FastAdmin 已含 /uploads/ 前缀)
|
* @param string $relativePath 相对路径(可能含 /uploads/ 前缀)
|
||||||
* @return string 完整 HTTPS URL
|
* @return string 完整 HTTPS URL
|
||||||
*/
|
*/
|
||||||
private function buildApkUrl($relativePath)
|
private function buildApkUrl($relativePath)
|
||||||
{
|
{
|
||||||
$domain = request()->domain();
|
$domain = request()->domain();
|
||||||
// 强制使用 HTTPS,客户端要求 downloadUrl 必须以 https:// 开头
|
// 强制使用 HTTPS
|
||||||
$domain = preg_replace('/^http:\/\//i', 'https://', $domain);
|
$domain = preg_replace('/^http:\/\//i', 'https://', $domain);
|
||||||
// FastAdmin 存储的路径已含 /uploads/ 前缀,直接拼接即可
|
// 去除重复的 /uploads/ 前缀(如 /uploads/uploads/ → /uploads/)
|
||||||
return rtrim($domain, '/') . '/' . ltrim($relativePath, '/');
|
$relativePath = preg_replace('#^/?(uploads/)+#', 'uploads/', $relativePath);
|
||||||
|
return rtrim($domain, '/') . '/' . $relativePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user