unisharp / laravel-uploadable
一个将文件附加到Eloquent模型的简单包。
dev-master
2018-11-19 06:00 UTC
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-09-15 15:23:11 UTC
README
一个将文件附加到Eloquent模型的简单包。
安装
composer require unisharp/laravel-uploadable dev-master
配置
在 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 ] ];
用法
在模型中使用特性
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'); } }
手动上传和删除文件
// 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);
通过API上传/删除
// 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 () { ... });
自定义图片处理器
图片处理器
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(); } }
在 config/uploadable.php
中设置自定义图片处理器
return [ 'plugins' => [ CustomImageHandler::class ] ];