feat(image): 全局支持COS图片压缩参数限制最大宽度1000px并转换为webp
这个提交包含在:
@@ -45,14 +45,11 @@ class File extends Backend
|
||||
'order' => $order
|
||||
], $rows, $page);
|
||||
|
||||
$cosConfig = function_exists('get_addon_config') ? get_addon_config('cos') : [];
|
||||
$cdnUrl = (!empty($cosConfig['cdnurl'])) ? rtrim($cosConfig['cdnurl'], '/') : '';
|
||||
|
||||
if (!empty($result['list'])) {
|
||||
foreach ($result['list'] as &$v) {
|
||||
$v['checked'] = false;
|
||||
$v['showTools'] = false;
|
||||
$v['fullurl'] = (!empty($cdnUrl) && stripos($v['url'], 'http') !== 0) ? ($cdnUrl . $v['url']) : cdnurl($v['url'], true);
|
||||
$v['fullurl'] = cdnurl($v['url'], true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -519,7 +519,16 @@ if (!function_exists('cdnurl')) {
|
||||
{
|
||||
$regex = "/^((?:[a-z]+:)?\/\/|data:image\/)(.*)/i";
|
||||
$cdnurl = \think\Config::get('upload.cdnurl');
|
||||
$url = is_array($url) ? $url[0] : $url;
|
||||
if (empty($cdnurl) && function_exists('get_addon_config')) {
|
||||
$cosConfig = get_addon_config('cos');
|
||||
if (!empty($cosConfig['cdnurl'])) {
|
||||
$cdnurl = rtrim($cosConfig['cdnurl'], '/');
|
||||
}
|
||||
}
|
||||
$url = is_array($url) ? $url[0] : $url;
|
||||
if (empty($url)) {
|
||||
return '';
|
||||
}
|
||||
if (is_bool($domain) || stripos($cdnurl, '/') === 0) {
|
||||
$url = preg_match($regex, $url) || ($cdnurl && stripos($url, $cdnurl) === 0) ? $url : $cdnurl . $url;
|
||||
}
|
||||
@@ -527,6 +536,15 @@ if (!function_exists('cdnurl')) {
|
||||
$domain = is_bool($domain) ? request()->domain() : $domain;
|
||||
$url = $domain . $url;
|
||||
}
|
||||
|
||||
// 采用COS图片处理参数将图片最大宽度限制在1000px以内并转为webp格式
|
||||
if (!empty($cdnurl) && stripos($url, $cdnurl) !== false) {
|
||||
if (preg_match('/\.(jpg|jpeg|png|bmp|webp)(\?.*)?$/i', $url) && stripos($url, 'imageMogr2') === false) {
|
||||
$separator = (strpos($url, '?') !== false) ? '&' : '?';
|
||||
$url .= $separator . 'imageMogr2/thumbnail/1000x%3E/format/webp';
|
||||
}
|
||||
}
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户