Laravel8实现上传图片裁剪功能方法
1、 安装扩展
composer require intervention/image
2、 在 app/config/app.php 添加 providers 数组中添加如下代码:
Intervention\Image\ImageServiceProvider::class,
3、 在 app/config/app.php 添加 aliases 数组中添加如下代码:
'Image' => Intervention\Image\Facades\Image::class,
4、发布扩展生成 config/image.php 配置文件,执行下面命令
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"
5、使用
<?php use Intervention\Image\Facades\Image; //后面为图片路径 $img = Image::make('./image/abc.jpg')->resize(300, 300); // 将处理后的图片重新保存到其他路径 $img->save('./image/new_abc.jpg'); ?>
完整方法:
<?php /* * 图片上传接口 * 文件名 * 文件夹名 * */ public static function uploadImg($file,$folder){ $tmp = $file; $folder = $folder ? $folder : ""; $path = '/static/uploads'; //public下的Uploads if ($tmp->isValid()) { //判断文件上传是否有效 $FileType = $tmp->getClientOriginalExtension(); //获取文件后缀 $FilePath = $tmp->getRealPath(); //获取文件临时存放位置 $FileName = $folder.'/'.date('Ymd').'/' . uniqid() . '.' . $FileType; //定义文件名 Storage::disk('Uploads')->put($FileName, file_get_contents($FilePath)); //存储文件 $img = Image::make(public_path().$path . '/' . $FileName)->resize(30, 30); $img->save(public_path().$path . '/' . $FileName); return $data = [ 'code' => ApiErrDesc::UPLOAD_SUCCESS[0], 'msg' =>ApiErrDesc::UPLOAD_SUCCESS[1] , 'data'=>['path' => $path . '/' . $FileName] //文件路径 ]; }else{ return $data = [ 'code' => ApiErrDesc::UPLOAD_ERROR[0], 'msg' =>ApiErrDesc::UPLOAD_ERROR[1] , 'data'=>[] ]; } } ?>
文章评论(0)