paharok / laravel-files
Filemanager for Laravel
Requires
- php: ^8.0.2
- intervention/image: ^3.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- 8.3.0
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.1
- 3.0.0
- 2.22
- 2.21
- 2.11
- 2.4.1
- 2.4
- 2.3.1
- 2.3
- 2.2
- 2.1
- 1.44
- 1.43
- 1.42
- 1.41
- 1.31
- 1.21
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9.1
- 1.9
- 1.8.2
- 1.8.1
- 1.8
- 1.7.10
- 1.7.9
- 1.7.8
- 1.7.7
- 1.7.6
- 1.7.4
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7
- 1.6.7
- 1.6.6
- 1.6.5
- 1.6.4
- 1.6.3
- 1.6.2
- 1.6.1
- 1.6
- 1.5.8
- 1.5.7
- 1.5.6
- 1.5.5
- 1.5.4
- 1.5.3
- 1.5.2
- 1.5.1
- 1.5
- 1.4
- 1.3
- 1.2
- 1.1
- 1.0
This package is auto-updated.
Last update: 2026-09-05 12:43:09 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), інші файли — посиланням для завантаження.