laravel-admin上传/显示图片

    |     2021年1月2日   |   学习偶记   |     评论已关闭   |    348

在用户站点中,用户需要上传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目录下,有这个文件。

主要有两个地方,一个是.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]);

灯箱效果

灯箱效果

噢!评论已关闭。