UEditor icon indicating copy to clipboard operation
UEditor copied to clipboard

能否升级下支持 Laravel 9.X

Open imnpc opened this issue 2 years ago • 1 comments

目前只能支持到 Laravel 8.X

imnpc avatar Mar 14 '22 06:03 imnpc

vendor\overtrue\laravel-ueditor\src\StorageManager.php 代码路径

改下代码可以支持 protected function getUploadConfig($action) { $upload = config('ueditor.upload');

    $prefixes = [
        'image', 'scrawl', 'snapscreen', 'catcher', 'video', 'file',
        'imageManager', 'fileManager',
    ];

    $config = [];

    foreach ($prefixes as $prefix) {
        if ($action == $upload[$prefix.'ActionName']) {
            $config = [
                'action' => self::array_get($upload, $prefix.'ActionName'),
                'field_name' => self::array_get($upload, $prefix.'FieldName'),
                'max_size' => self::array_get($upload, $prefix.'MaxSize'),
                'allow_files' => self::array_get($upload, $prefix.'AllowFiles', []),
                'path_format' => self::array_get($upload, $prefix.'PathFormat'),
            ];

            break;
        }
    }

    return $config;
}
static function array_get($array, $key, $default = null)
{
    if (is_null($key)) {
        return $array; 
    }

    if (isset($array[$key])) {
        return $array[$key];
    }

    foreach (explode('.', $key) as $segment) {
        if (! is_array($array) || ! array_key_exists($segment, $array)) {
            return value($default);
        }

        $array = $array[$segment];
    }
    return $array;
}

/** * Format the storage path. * * @param string $path * @param string $filename * * @return mixed */ protected function formatPath($path, $filename) { $replacement = array_merge(explode('-', date('Y-y-m-d-H-i-s')), [$filename, time()]); $placeholders = ['{yyyy}', '{yy}', '{mm}', '{dd}', '{hh}', '{ii}', '{ss}', '{filename}', '{time}']; $path = str_replace($placeholders, $replacement, $path);

    //替换随机字符串
    if (preg_match('/\{rand\:([\d]*)\}/i', $path, $matches)) {
        $length = min($matches[1], strlen(PHP_INT_MAX));
        $path = preg_replace('/\{rand\:[\d]*\}/i', str_pad(mt_rand(0, pow(10, $length) - 1), $length, '0', STR_PAD_LEFT), $path);
    }

    if (!str_contains($path, $filename)) {
      
        $path = Str::endsWith($path, '/') ? $path : $path."/";  
        $path.=$filename;
    }

    return $path;
}

}

crmzhangwei avatar Jul 12 '24 08:07 crmzhangwei