proshore / laravel-image-upload
简单的图像上传和缩略图管理
dev-master
2016-09-07 16:32 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
- intervention/image: ^2.3
Requires (Dev)
- mockery/mockery: dev-master
This package is auto-updated.
Last update: 2024-09-06 05:50:07 UTC
README
laravel5的基本图像上传和缩略图管理包。
安装
首先,通过Composer引入该包。
"require": { "proshore/laravel-image-upload": "dev-master" }
然后,如果您使用Laravel 5,请将服务提供者在 config/app.php 中包含。
'providers' => [ LaravelImage\ImageUploadServiceProvider::class, ];
为了方便,在此文件底部添加一个外观别名
'aliases' => [ 'ImageHelper' => LaravelImage\Image::class, ];
最后发布配置
php artisan vendor:publish --provider="LaravelImage\ImageUploadServiceProvider"
配置
您可以将默认缩略图配置添加到 config/laravelimage.php。
用法
上传图像
在您的控制器中,通过依赖注入获取对图像上传服务的访问权限
class ContentsController extends Controller { ... protected $file; /** * @param ImageUploadService $file */ public function __construct(ImageUploadService $file) { ... //set properties for file upload $this->file = $file; $this->file->setUploadField('image'); //default is image $this->file->setUploadFolder('contents'); //default is public/uploads/contents } ...
然后,在您的存储或更新方法中执行图像上传
/** * Store method */ public function store(ContentRequest $request) { $input = $request->all(); if (Input::hasFile('image') && $this->file->upload()) { //file is uploaded, get uploaded file info $uploadedFileInfo = $this->file->getUploadedFileInfo(); ... //do whatever you like with the information $input = array_merge($input, $uploadedFileInfo); } ... } /** * Update method */ public function update(Request $request, $id) { ... if (Input::hasFile('image') && $this->file->upload()) { ... //remove old files if ( ! empty($model->file_path)) { $this->file->clean(public_path($model->file_path), true); } } ... }
使用外观显示图像
从已注册的缩略图中显示。如果注册的缩略图不存在,它将尝试生成新的缩略图。
{!!
\LaravelImage\LaravelImage::image($model->file_path, $model->image, [
'alt' => $model->original_file_name,
'size' => 'thumb'
])
!!}
或者,在运行时创建自定义尺寸的图像
{!!
\LaravelImage\LaravelImage::image($model->file_path, $model->image, [
'alt' => $model->original_file_name,
'size' => [
'custom' => ['w' => 300, 'h' => 200, 'crop' => true]
]
])
!!}
待办事项
- 图像缓存实现
- 完整文档