sweet1s / moonshine-filemanager
Moonshine File Manager is a Laravel package that provides a simple way to manage files and folders in your Laravel application.
Installs: 896
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 2
pkg:composer/sweet1s/moonshine-filemanager
Requires
- php: ^8.2|^8.3|^8.4
 - ext-curl: *
 - ext-json: *
 
Requires (Dev)
- brianium/paratest: ^6.8
 - mockery/mockery: ^1.4.4
 - moonshine/moonshine: ^3.0
 - orchestra/testbench: ^4.0|^5.0|^6.0|^7.0|^8.0
 - phpstan/phpstan: ^1.4.7
 - phpunit/phpunit: ^9.5.8
 - unisharp/laravel-filemanager: ^2.7
 
This package is auto-updated.
Last update: 2025-10-29 03:26:45 UTC
README
Description
This package is an extension exclusively designed for the MoonShine Admin Panel, building upon the functionality of the UniSharp Laravel FileManager package. This package introduces a user-friendly interface for managing files and images, allowing admins to easily upload, organize, and handle media directly within the admin panel.
Requirements
Moonshine: v2.0+
UniSharp laravel-filemanager: v2.7+
Features
- Intuitive File Management: Provides a simple and intuitive UI for managing files and images.
 - Seamless Integration with Moonshine Admin Panel: Designed to integrate flawlessly with the Moonshine Admin Panel.
 - Image Upload and Organization: Facilitates easy upload and organization of images.
 - File Handling: Supports various file operations such as upload, delete, and rename.
 
Installation
- 
Install the UniSharp Laravel FileManager package and follow the instructions in the documentation to set up the package correctly.
 - 
Install the package via composer:
 
composer require sweet1s/moonshine-filemanager
Usage
- For Resource, add the following: (In the screenshot you can see methods that can be used for File Manager, other methods that come from Field File do not work.)
 
// ... use Sweet1s\MoonshineFileManager\FileManager; use Sweet1s\MoonshineFileManager\FileManagerTypeEnum; class PostResource extends ModelResource { public function fields(): array { return [ Block::make('Contact information', [ // ... FileManager::make('Image', 'images') ->typeOfFileManager(FileManagerTypeEnum::File) // By default is FileManagerTypeEnum::Image ->title('Media Manager') // By default, is 'File Manager' ->allowedExtensions(['pdf', 'doc', 'txt']) // By default, all extensions are allowed ->removable() // By default is false ]), ]; } }
- All fields to be used as filemanager must be under the cast collection
 
protected $casts = [ 'images' => 'collection', ]; //or protected function casts(): array { return [ 'images' => 'collection', ]; }

