alexd / image
表单中使用的图像管理器
dev-master
2017-08-03 13:40 UTC
Requires
- php: >=5.4.0
- bkwld/croppa: ~4.0
- intervention/image: ^2.3
This package is not auto-updated.
Last update: 2024-09-24 23:41:32 UTC
README
安装
- 通过Composer在你的
composer.json
中安装该包
{
"require": {
"alexd/image": "*"
}
}
- 运行Composer更新
$ composer update
- 将服务提供者添加到你的
app/config/app.php
文件中
Bkwld\Croppa\ServiceProvider::class,
Alexd\Image\ImageServiceProvider::class,
- 将别名添加到
app/config/app.php
文件中
'Croppa' => Bkwld\Croppa\Facade::class,
'ImageManager' => Alexd\Image\Facades\Image::class
- 运行artisan命令
php artisan vendor:publish --provider="Alexd\Image\ImageServiceProvider"
php artisan storage:link
- 如果你已经有了
config/croppa.php
,请在以下位置更改设置值
'src_dir' => public_path('storage'),
'crops_dir' => public_path('storage'),
'path' => 'storage/(.*)$',
'signing_key' => false,
'upscale' => true,
用法
- 在创建表单中添加
对于单张图片
@include('ImageManager::_scripts')
@include('ImageManager::_image-input', [
'label' => 'Image',
'field_name' => 'image',
'upload_dir' => 'gallery',
'size' => [100, 100]
])
对于多张图片
@include('ImageManager::_scripts')
@include('ImageManager::_images-input', [
'label' => 'Images',
'field_name' => 'images',
'upload_dir' => 'gallery',
'size' => [100, 100]
])
- 在编辑表单中添加
对于单张图片
@include('ImageManager::_scripts')
@include('ImageManager::_image-input', [
'label' => 'Image',
'field_name' => 'image',
'upload_dir' => 'gallery',
'size' => [100, 100],
'model' => $model
])
对于多张图片
@include('ImageManager::_scripts')
@include('ImageManager::_images-input', [
'label' => 'Images',
'field_name' => 'images',
'upload_dir' => 'gallery',
'size' => [100, 100],
'model' => $model
])
别忘了将multipart/form-data
添加到你的表单中
- 在store方法中,你可以使用
对于单张图片
$data = $request->all();
$data['image'] = ImageManager::upload($request, 'image', 'gallery');
对于多张图片
$data = $request->all();
ImageManager::multiupload($request, 'images', 'gallery', $model->id, Gallery::class);
- 在update方法中,你可以使用
对于单张图片
$data = $request->all();
$data['image'] = ImageManager::upload($request, 'image', 'gallery', $model->image);
对于多张图片
$data = $request->all();
ImageManager::multiupload($request, 'images', 'gallery', $model->id, Gallery::class);
- 要删除图片,你应该传递文件名和上传目录
对于单张图片
ImageManager::delete($model->image, 'gallery');
对于多张图片
ImageManager::multidelete($model->images, 'gallery');