LaravelFilemanager под капотом требует библиотеку php imagick для создания миниатюр, в случае отсутствия - происходят ошибки при загрузке. Картинка загружается, но миниатюра не создается. Но это не основная даже проблема. Наибольшая проблема - если мы грузим картинки не при помощи Файлового менеджера (ftp, resource), тогда при вызове менеджера - будет показана полная картинка. И в директории может находится много картинок с большими размерами, что приведет к долгой загрузке.
Сам обработчик построен на скриптовом файле, и осуществить подмену не удалось. Поэтому страшная вещь - дополнение скрипта в Vendor. Благо поддержка слабая - и обновление пакета крайне редкое явление, но стоит помнить.
Файл собирающий массив для аджакс запроса находится по адресу /vendor/unisharp/laravel-filemanager/src/Controllers/ItemsController. необходимо подключить файл обработки, и произвести генерации thumbnails:
use App\Helpers\CropImages;
// ...
public function getItems()
{
$cropImages = new CropImages();
$currentPage = self::getCurrentPageFromRequest();
$perPage = $this->helper->getPaginationPerPage();
$items = array_merge($this->lfm->folders(), $this->lfm->files());
return [
'items' => array_map(function ($item)use($cropImages) {
$itemI = $item->fill()->attributes;
if($itemI['is_file']??false) $itemI['thumb_url'] = $cropImages->cropImages(imagePath: $itemI['url'], createWidth: 200);
return $itemI;
}, array_slice($items, ($currentPage - 1) * $perPage, $perPage)),
'paginator' => [
'current_page' => $currentPage,
'total' => count($items),
'per_page' => $perPage,
],
'display' => $this->helper->getDisplayMode(),
'working_dir' => $this->lfm->path('working_dir'),
];
}
// ...