paharok/laravel-files is a Laravel package for filemanager for laravel.
It currently has 0 GitHub stars and 149 downloads on Packagist (latest version 3.3.3).
Install it with composer require paharok/laravel-files.
Discover more Laravel packages by paharok
or browse all Laravel packages to compare alternatives.
Last updated
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-скрипта — оберіть одну з них.
<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">
<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 і вставити обраний файл у редактор, перед відкриттям попапу присвойте plf.target інстанс редактора:
plf.open();
plf.target = CKEDITOR.instances['editor1'];
plf.getData(lastPath);
Аналогічно працює й з Quill — присвойте plf.target інстанс Quill (той, у якого .root має клас ql-editor):
plf.open();
plf.target = quillInstance;
plf.getData(lastPath);
Зображення вставляються як embed (insertEmbed), інші файли — посиланням для завантаження.