Search by

paharok / laravel-files

paharok

Filemanager for Laravel

Package info

github.com/paharok/laravel-files

pkg:composer/paharok/laravel-files

Statistics

Installs: 149

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

3.3.3 2026-09-05 12:42 UTC

README

Встановлення

composer require paharok/laravel-files

Публікація

php artisan vendor:publish --tag=laravel-files-assets --force

Оновлення

Очищення кешу компонентів

php artisan view:clear

Обмеження доступу

За замовчуванням файлменеджер доступний будь-якому залогіненому користувачу (auth_middleware => true, стандартне Laravel auth).

Щоб звузити доступ до конкретних користувачів — наприклад, лише адмінам (is_admin в БД) — опублікуйте конфіг і задайте users_access у config/laravelfiles.php:

php artisan vendor:publish --tag=laravel-files-assets --force
'auth_middleware' => true,
'users_access' => ['is_admin' => [true]],

Це означає: доступ мають лише залогінені користувачі, у яких $user->is_admin строго дорівнює true. Можна перелічити декілька дозволених значень (['is_admin' => [true, false]]) або декілька полів одразу — тоді мають збігтись усі (AND):

'users_access' => [
    'is_admin' => [true],
    'role' => ['admin', 'editor'],
],

Порожній users_access (за замовчуванням) — без додаткових обмежень, лише auth_middleware.

Заборонені розширення файлів

За замовчуванням заборонено завантажувати файли з розширеннями, які потенційно можуть виконатись на сервері або втручатись у його конфігурацію (php, phtml, phar, cgi, pl, sh, htaccess, exe тощо — повний список у config/laravelfiles.php, ключ forbidden_extensions). Перевіряється кожен сегмент імені файлу після крапки, тому shell.php.jpg теж буде відхилено.

Щоб змінити список — опублікуйте конфіг і відредагуйте його:

php artisan vendor:publish --tag=laravel-files-assets --force

Файли з забороненим розширенням просто пропускаються при завантаженні; їхні імена повертаються у відповіді (rejected) і показуються користувачу.

Очищення мініатюр

Мініатюри (100x100) генеруються при завантаженні зображення і кешуються в підпапках __thumbnails__ поряд з оригіналами. Щоб примусово перестворити всі мініатюри (наприклад, після зміни розміру/якості або пошкодження кешу), видаліть ці папки командою:

php artisan laravel-files:clear-thumbnails

За замовчуванням команда рекурсивно шукає й видаляє всі папки __thumbnails__ у public/vendor/laravel-files/files. Мініатюри перестворяться автоматично при наступному відкритті файлменеджера.

Щоб вказати інший шлях для пошуку — тільки відносний до public/ (вихід за межі public/, зокрема через ../ чи symlink, заблоковано):

php artisan laravel-files:clear-thumbnails vendor/laravel-files/files/uploads

Підключення стилей та скриптів

Пакет має дві версії JS-скрипта — оберіть одну з них.

Варіант 1: з jQuery (потребує підключеного jQuery на сторінці)

<script src="{{ asset('/vendor/laravel-files/js/pahar-laravel-files.js') }}"></script>
<link href="{{ asset('/vendor/laravel-files/css/pahar-laravel-files.css') }}" rel="stylesheet">

Варіант 2: без jQuery (чистий JavaScript)

<script src="{{ asset('/vendor/laravel-files/js/pahar-laravel-files-vanilla.js') }}"></script>
<link href="{{ asset('/vendor/laravel-files/css/pahar-laravel-files.css') }}" rel="stylesheet">

Підключати обидва скрипти одночасно не потрібно — вони дублюють одну й ту саму функціональність.

Компоненти

Вивести поле для вибору файлу

<x-plf-field :name="$name" :value="$value"/>

Вивести поля для вибору файлів

<x-plf-field-multiple :name="name[]" :values="array $value"/>

Підтримка CKEditor 4

Щоб відкрити файлменеджер із CKEditor 4 і вставити обраний файл у редактор, перед відкриттям попапу присвойте plf.target інстанс редактора:

plf.open();
plf.target = CKEDITOR.instances['editor1'];
plf.getData(lastPath);

Підтримка Quill (ql-editor)

Аналогічно працює й з Quill — присвойте plf.target інстанс Quill (той, у якого .root має клас ql-editor):

plf.open();
plf.target = quillInstance;
plf.getData(lastPath);

Зображення вставляються як embed (insertEmbed), інші файли — посиланням для завантаження.