refactor: 七牛云上传
This commit is contained in:
@@ -144,4 +144,50 @@ if (!function_exists('thumb')) {
|
||||
|
||||
return mb_substr($url, 0, $idx, 'utf-8') . '_thumb' . mb_substr($url, $idx, $len - $idx, 'utf-8');
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('get_filesystem_url')) {
|
||||
/**
|
||||
* 获取文件系统的访问 URL
|
||||
* @param string $url 文件地址
|
||||
* @param string $disk 磁盘配置 key
|
||||
* @return string
|
||||
*/
|
||||
function get_filesystem_url(string $url, string $disk): string
|
||||
{
|
||||
if (\think\helper\Str::startsWith($url, ['http://', 'https://'])) {
|
||||
return $url;
|
||||
}
|
||||
if (empty($disk)) {
|
||||
return '';
|
||||
}
|
||||
return \think\facade\Filesystem::disk($disk)->url($url);
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('url_filesystem_detect')) {
|
||||
/**
|
||||
* 检测文件地址并根据情况转换为文件系统地址
|
||||
* @param string $url 文件地址
|
||||
* @return string
|
||||
*/
|
||||
function url_filesystem_detect(string $url): string
|
||||
{
|
||||
$idx = strrpos($url, '.');
|
||||
if ($idx === false) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
$disks = [
|
||||
'public_qiniu' => '_' . base64_encode('public_qiniu'),
|
||||
'video_qiniu' => '_' . base64_encode('video_qiniu')
|
||||
];
|
||||
foreach ($disks as $disk => $marker) {
|
||||
if (str_ends_with(mb_substr($url, 0, $idx), $marker)) {
|
||||
return get_filesystem_url($url, $disk);
|
||||
}
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user