alexd/image

表单中使用的图像管理器

安装: 32

依赖: 0

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

公开问题: 0

语言:JavaScript

dev-master 2017-08-03 13:40 UTC

This package is not auto-updated.

Last update: 2024-09-24 23:41:32 UTC


README

安装

  1. 通过Composer在你的composer.json中安装该包
{
    "require": {
        "alexd/image": "*"
    }
}
  1. 运行Composer更新
$ composer update
  1. 将服务提供者添加到你的app/config/app.php文件中
Bkwld\Croppa\ServiceProvider::class,
Alexd\Image\ImageServiceProvider::class,
  1. 将别名添加到app/config/app.php文件中
'Croppa' => Bkwld\Croppa\Facade::class,
'ImageManager' => Alexd\Image\Facades\Image::class
  1. 运行artisan命令
php artisan vendor:publish --provider="Alexd\Image\ImageServiceProvider"
php artisan storage:link
  1. 如果你已经有了config/croppa.php,请在以下位置更改设置值
'src_dir' => public_path('storage'),
'crops_dir' => public_path('storage'),
'path' => 'storage/(.*)$',
'signing_key' => false,
'upscale' => true,

用法

  1. 在创建表单中添加

对于单张图片

@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]
])
  1. 在编辑表单中添加

对于单张图片

@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添加到你的表单中

  1. 在store方法中,你可以使用

对于单张图片

$data = $request->all();

$data['image'] = ImageManager::upload($request, 'image', 'gallery');

对于多张图片

$data = $request->all();

ImageManager::multiupload($request, 'images', 'gallery', $model->id, Gallery::class);
  1. 在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);
  1. 要删除图片,你应该传递文件名和上传目录

对于单张图片

ImageManager::delete($model->image, 'gallery');

对于多张图片

ImageManager::multidelete($model->images, 'gallery');