ibekzod / uploader
Uploader with database integration and dynamic file structure
Requires
- php: >=7.4.0
- ext-fileinfo: *
- guzzlehttp/guzzle: ^6.5.5|^7.4.1
- illuminate/database: ^8.83.3|^9.0
- illuminate/filesystem: ^8.83.3|^9.0
- illuminate/support: ^8.83.3|^9.0
- intervention/image: ^2.7.1
- league/flysystem: ^1.1.9|^2.4.2|^3.0.4
- psr/http-message: ^1.0.1
- symfony/http-foundation: ^5.0.11|^6.0.3
Requires (Dev)
- aws/aws-sdk-php: ^3.166.2
- doctrine/dbal: ^2.11|^3.0
- guzzlehttp/promises: ^1.5.1
- laravel/legacy-factories: ^1.3.0
- league/flysystem-aws-s3-v3: ^1.0.29|^2.1.0|^3.0
- mockery/mockery: ^1.4.2
- orchestra/testbench: ^6.6|^7.0
- php-coveralls/php-coveralls: ^2.5.2
- phpunit/phpunit: ^9.5.13
- vlucas/phpdotenv: ^4.2.2|^5.4.1
README
This is file uploader lightweight package with upload service and ready made api with controllers
Installation
You can install the package via composer:
composer require ibekzod/uploader
Publish the config file (config/mediable.php) of the package using artisan.
php artisan vendor:publish --provider="IBekzod\Uploader\UploaderServiceProvider"
Run the migrations to add the required tables to your database.
php artisan migrate
Usage
Upload a file to the server, and place it in a directory on the filesystem disk named "uploads" with subdirectory "files" or your custom referring type
<?php use IBekzod\Uploader\Uploader; use IBekzod\Uploader\Models\Upload; use App\Models\Post; $upload = Uploader::uploadAttachment($request->file('attachment'))->getUpload(); //Let's assume we have Post model with image_id column or file_id whatever name you can write $post = Post::create([ 'title'=>'Title', 'body'=>'Body', 'image_id'=>$upload->id //unsigned big integer is preferred ]); //This is optional if you want to find $upload->relation='post';//or simply Post::class $upload->relation_id=$post->id; $upload->save(); //By this way you can get all post images $allPostImages=Upload::where('relation', 'post')->get(); //Or related first post image $postImage=Upload::where('relation', 'post')->where('relation_id', $post->id)->first(); //You are free to design your structure by using Upload
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email erkinovbegzod.45@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.