laravel-admin上传/显示图片
在用户站点中,用户需要上传logo。所以在laravel-admin中进行了一些图片的操作。
首先,安装composer require intervention/image 。
文档传送门:https://laravel-admin.org/docs/zh/1.x/model-form-upload
intervention/image文档:http://image.intervention.io/getting_started/introduction
A、模型表单中,上传时报错:Encoding format (tmp) is not supported。解决办法:https://github.com/Intervention/image/pull/1049/commits/6c1219c09c4830608e15e92fd9455fa839b68999
修改:src/Intervention/Image/AbstractEncoder.php
protected function setFormat($format = null)
{
//删除如下两行
//if ($format == '' && $this->image instanceof Image) {
//$format = $this->image->mime;
//更换成这两行
if ($format == '' || $format == 'tmp') {
if ( $this->image instanceof Image ) {
$format = $this->image->mime;
}
}
$this->format = $format ? $format : 'jpg';
B、图片上传后显示错误,查看upload/images目录下,有这个文件。
1 2 |
// 剪裁图片 添加图片删除按钮 $form->image('site_logo', __('Site logo'))->resize(160, 120)->removable()->help('图片规格160*120,大图片会自动缩放。')->rules('nullable'); |
主要有两个地方,一个是.env 中,APP_URL=这里修改成域名
第二个是:config/filesystem.php中,
//管理员上传路径
‘admin’ => [
‘driver’ => ‘local’,
‘root’ => public_path(‘upload’),
‘visibility’ => ‘public’,
‘url’ => env(‘APP_URL’).’/upload/’, //这里原先有个public,需要删除
]
C、列表中,图片显示放大缩小,需要安装laravel-admin扩展,地址:https://github.com/laravel-admin-extensions/grid-lightbox
composer require laravel-admin-ext/grid-lightbox
php artisan vendor:publish --tag=laravel-admin-grid-lightbox
Configurations
打开 config/admin.php,添加以下内容到extensions.
'extensions' => [
'grid-lightbox' => [
// Set to
false
if you want to disable this extension
'enable' => true,
]
]
使用:
$grid->column('site_logo', __('Site logo'))->lightbox(['zooming' => true, 'width' => 80, 'height' => 60]);
噢!评论已关闭。