unisharp / laravel-uploadable
A simple package to attach files to a eloquent model.
Installs: 3 048
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 11
Forks: 3
Open Issues: 0
Requires
- illuminate/container: ^5.5
- illuminate/database: ^5.5
- illuminate/events: ^5.5
- illuminate/filesystem: ^5.5
- illuminate/routing: ^5.5
- illuminate/support: ^5.5
- intervention/image: ^2.4
Requires (Dev)
- mockery/mockery: ~1.0
- phpunit/phpunit: ^6.1
- squizlabs/php_codesniffer: 3.*
This package is auto-updated.
Last update: 2024-11-15 15:53:04 UTC
README
A simple package to attach files to a eloquent model.
Installation
composer require unisharp/laravel-uploadable dev-master
Configuration
Set configuration in config/uploadable.php
return [ // Set image orientate enable or disable 'use_image_orientate' => false, // Set thumbnail size 'thumbs' => [ 's' => '96x96', 'm' => '256x256', 'l' => '480x480' ], // Set image handler 'plugins' => [ ImageHandler::class ] ];
Usages
Use trait in the model
namespace App; use Illuminate\Database\Eloquent\Model; use Unisharp\Uploadable\CanUpload; class Product extends Model { use CanUpload; public function image() { return $this->morphOne(Image::class, 'imageable'); } }
Manually upload and Delete files
// Upload a file $product = new Product(); $product->upload(request()->file()); // Delete a file $file = $product->files()->first(); $product->removeFiles($file->id); // Delete files $files = $product->files->pluck('id'); $product->removeFiles($files);
Upload/Delete through APIs
// POST /files/ & DELETE /files/{file} UniSharp\Uploadable\UploaderManager::route(); // POST /files/ UniSharp\Uploadable\UploaderManager::route(['store']); // POST /files/ with callback UniSharp\Uploadable\UploaderManager::route(['store'], function () { ... });
Customize image handler
Image Handler
use Intervention\Image\Facades\Image; use Illuminate\Filesystem\FilesystemAdapter; class CustomImageHandler { public function handle(FilesystemAdapter $storage, $path) { $image = Image::make($storage->path($path)); ... $image->save(); } }
Set Custom image handler in config/uploadable.php
return [ 'plugins' => [ CustomImageHandler::class ] ];