monim67 / laravel-user-image-croppie
Laravel 包用于裁剪和上传方形/圆形用户头像
Requires
- intervention/image: ^2.4
- laravel/framework: ^5.5
This package is auto-updated.
Last update: 2024-09-13 06:10:12 UTC
README
此包为 Laravel 应用添加方形/圆形用户头像,并包含更新事件。用户可以在上传前使用纯 JavaScript 旋转、缩放和裁剪头像,无需 jQuery。包含一个头像控制器来处理图像上传,成功上传头像后触发事件。
特性
- 上传前可调整大小、旋转或裁剪图片。
- 带进度条的图像上传。
- 使用纯 JavaScript 构建,无需 jQuery。
- 在成功上传图像时触发 AvatarUpdate 事件。
- 包含包内的路由和控制器。
- 包含可选迁移,将头像列添加到用户表中。
- 只需几个简单步骤即可与 Laravel 集成。
- 通过编辑配置文件进行完全自定义。
- 包含本地化支持。
- 可以与 Laravel Voyager 管理面板一起使用。
入门
使用 Composer 安装包并发布配置文件。
composer require monim67/laravel-user-image-croppie
php artisan vendor:publish --provider="Monim67\LaravelUserImageCroppie\ServiceProvider" --tag=config
如果您已有用户图像的数据库列,需要在配置文件中指定它,否则可以发布此包中的迁移,该迁移将添加一个名为 avatar
的列到用户表中。
php artisan vendor:publish --provider="Monim67\LaravelUserImageCroppie\ServiceProvider" --tag=migrations
php artisan migrate
将以下内容添加到 web.php
文件中的路由。
Route::prefix('avatar')->middleware('auth:web')->group(function(){LUICroppie::routes();});
这将包括用户图像的编辑和更新路由。您可以使用任何您选择的别名。
如果您只想使用更新路由,请使用以下内容代替。
Route::prefix('avatar')->middleware('auth:web')->group(function(){LUICroppie::update_routes_only();});
编辑路由将在 resources\views\avatar\edit.blade.php
中查找。因此,创建一个扩展基本布局模板的文件,并在其中包含图像上传表单。
@extends('layouts.main') @section('content') @include('lui-croppie::partials.css') @include('lui-croppie::partials.js') <div class="row"> <div class="col-md-8"> <div class="box box-primary" > <div class="box-header with-border"> <h3 class="box-title">Change Profile Picture</h3> <div class="box-tools pull-right"> </div> </div> <div class="box-body"> @include('lui-croppie::bootstrap3.default') </div> </div> </div> </div> @stop
这就完成了,控制器已包含在包中,您无需编写控制器操作。运行开发服务器并访问 https://:8000/avatar/edit
来查看效果。
自定义选项
您可以通过编辑配置目录中的 lui-croppie.php
配置文件来自定义选项。
注意:对于圆形头像,将图像类型设置为 circle
。
其他表单布局
目前只包含 Bootstrap 3 布局,以后还将添加更多。您也可以绘制自己的布局,甚至创建带有您自己布局的 PR。
如果您不想有单独的页面来上传图像,可以将此表单添加到您现有的页面中,例如个人资料页面或账户设置页面。然后仅将更新路由包含到您的 web.php
中,并将密码更新表单包含到您选择的页面中。
本地化
如果您想自定义包语言文件,请发布它们进行修改。文件将被发布到 resources\lang\vendor\lui-croppie
目录。您可以在那里创建其他语言的语言文件。
php artisan vendor:publish --provider="Monim67\LaravelUserImageCroppie\ServiceProvider" --tag=lang
用户头像更新事件
当用户上传图像时,将触发 Monim67\LaravelUserImageCroppie\Events\AvatarUpdate
事件,您可以为事件订阅或添加监听器。
致谢
此包使用 Croppie JavaScript 图像裁剪器裁剪上传图像。