Laravel 图片上传简单封装及调用方法,我们在使用框架开发系统,如果经常需要用到图片上传,这时我们就有必要考虑封装了。以下是个简单的封装方法,仅供大家参考。
步骤1:修改文件系统文件配置:位于config/filesystems.php
'Uploads' => [ 'driver' => 'local', 'root' => public_path('/Uploads'), // public_path 就是public的路径 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ],
步骤2:创建 Upload.php 位于 app\TraitClass\Upload.php
<?php /** * Created by PhpStorm. * User: Admin * Date: 2020/7/17 * Time: 17:15 * 文件上传封装 */ namespace App\TraitClass; use Illuminate\Support\Facades\Storage; trait Upload { /* * 图片上传接口 * 文件名 * 文件夹名 * */ public function uploadImg($file,$folder){ $tmp = $file; $folder=$folder ? $folder : ""; $path = '/Uploads'; //public下的Uploads if ($tmp->isValid()) { //判断文件上传是否有效 $FileType = $tmp->getClientOriginalExtension(); //获取文件后缀 $FilePath = $tmp->getRealPath(); //获取文件临时存放位置 $FileName = $folder.'/'.date('Y-m-d') . uniqid() . '.' . $FileType; //定义文件名 Storage::disk('Uploads')->put($FileName, file_get_contents($FilePath)); //存储文件 return $data = [ 'status' => 0, 'path' => $path . '/' . $FileName //文件路径 ]; } } }
步骤2:使用及调用方法
<?php use App\TraitClass\Upload; class ArticleController extends Controller { use Upload; /* * ico图片上传接口 * */ public function ico(Request $request){ if($request->isMethod('post')){ $img=$request->img; $res=$this->uploadImg($img,'img'); return $res; } } } ?>
结语:这里通过 use App\TraitClass\Upload 引入Upload.php,在上传接口方法中传递图片和上传文件夹目录名。
文章评论(0)