直播源码开发,laravel-admin整合wangEditor2及上传图片

直播源码开发,laravel-admin整合wangEditor2及上传图片

第一步:

 

1
<br>composer require jxlwqq/wang-editor2<br> 

第二步:发布配置文件:

 

1
<br>php artisan vendor:publish --tag=laravel-admin-wang-editor2<br> 

 

第三步:修改laravel-admin配置文件config/admin.php中的extensions,加上下面的配置:

 

1
<br>'extensions' => [<br>    'wang-editor2' => [<br>        // 如果要关掉这个扩展,设置为false<br>        'enable' => true,<br>        // 编辑器的配置<br>        'config' => [<br>            'uploadImgFileName' => 'up_image', //这个应该wangEditor的上传方法名字,不要乱改<br>            'uploadImgUrl' => '/admin/upload', //注意这里是上传的路由地址<br>            'menus' => [<br>                'source',<br>                '|',<br>                'bold',<br>                'underline',<br>                'italic',<br>                'strikethrough',<br>                'eraser',<br>                'forecolor',<br>                'bgcolor',<br>                '|',<br>                'quote',<br>                'fontfamily',<br>                'fontsize',<br>                'head',<br>                'unorderlist',<br>                'orderlist',<br>                'alignleft',<br>                'aligncenter',<br>                'alignright',<br>                '|',<br>                'link',<br>                'unlink',<br>                'table',<br>                '|',<br>                'img',<br>                'video',<br>                'insertcode',<br>                '|',<br>                'undo',<br>                'redo',<br>                'fullscreen'<br>            ],<br>        ]<br>    ]<br>] 

 

第四步:新建laravel后端的图片上传文件app\Handlers\ImageUploadHandler.php:

 

1
<br><?php<br>namespace App\Handlers;<br>use Image;<br>use Str;<br>class ImageUploadHandler<br>{<br>    protected $allowed_ext = ["png", "jpg", "gif", 'jpeg'];<br>    public function save($file, $folder, $file_prefix, $max_width = false)<br>    {<br>        // 构建存储的文件夹规则,值如:uploads/images/avatars/201709/21/<br>        // 文件夹切割能让查找效率更高。<br>        $folder_name = "uploads/images/$folder/" . date("Ym/d", time());<br>        // 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。<br>        // 值如:/home/vagrant/Code/larabbs/public/uploads/images/avatars/201709/21/<br>        $upload_path = public_path() . '/' . $folder_name;<br>        // 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在<br>        $extension = strtolower($file->getClientOriginalExtension()) ?: 'png';<br>        // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID<br>        // 值如:1_1493521050_7BVc9v9ujP.png<br>        $filename = $file_prefix . '_' . time() . '_' . Str::random(10) . '.' . $extension;<br>        // 如果上传的不是图片将终止操作<br>        if ( ! in_array($extension, $this->allowed_ext)) {<br>            return false;<br>        }<br>        // 将图片移动到我们的目标存储路径中<br>        $file->move($upload_path, $filename);<br>        // 如果限制了图片宽度,就进行裁剪<br>        if ($max_width && $extension != 'gif') {<br>            // 此类中封装的函数,用于裁剪图片<br>            $this->reduceSize($upload_path . '/' . $filename, $max_width);<br>        }<br>        return [<br>            'path' => "/$folder_name/$filename"<br>            //'path' => config('app.url') . "/$folder_name/$filename"<br>        ];<br>    }<br>    public function reduceSize($file_path, $max_width)<br>    {<br>        // 先实例化,传参是文件的磁盘物理路径<br>        $image = Image::make($file_path);<br>        // 进行大小调整的操作<br>        $image->resize($max_width, null, function ($constraint) {<br>            // 设定宽度是 $max_width,高度等比例缩放<br>            $constraint->aspectRatio();<br>            // 防止裁图时图片尺寸变大<br>            $constraint->upsize();<br>        });<br>        // 对图片修改后进行保存<br>        $image->save();<br>    }<br>}<br> 

 

第五步:新建laravel-admin路由,在app\Admin\routes.php中加入:

 

1
<br>$router->post('up_image', 'UploadController@upImage');<br> 

 

第六步:在app\Admin\Controllers下新建UploadController.php

 

1
<br><?php<br>/**<br> * Created by PhpStorm.<br> * User:ttt<br> * Date: 2019/10/29<br> * Time: 17:10<br> */<br>namespace App\Admin\Controllers;<br>use App\Http\Controllers\Controller;<br>use App\Handlers\ImageUploadHandler;<br>use Illuminate\Http\Request;<br>class UploadController extends Controller<br>{<br>    /**<br>     * 富文本编辑器上传图片<br>     * @param Request $request<br>     * @param ImageUploadHandler $uploader<br>     * @return array<br>     */<br>    public function upImage(Request $request, ImageUploadHandler $uploader)<br>    {<br>        // 初始化返回数据,默认是失败的<br>        $data = ['errno'=> 1];<br>        // 判断是否有上传文件,并赋值给 $file<br>        if ($file = $request->up_image) {<br>            // 保存图片到本地,参数分别是:文件,目标文件夹,文件前缀,文件最大宽度<br>            $result = $uploader->save($request->up_image, 'articleimg', 'admin', 650);<br>            // 图片保存成功的话<br>            if ($result) {<br>                $data['data'][] = $result['path'];<br>                $data['errno']   = 0;<br>            }<br>        }<br>        return $result['path'];<br>    }<br>}

 

 以上就是 直播源码开发,laravel-admin整合wangEditor2及上传图片,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-03-15 直播app开发,加载时采用序幕从左向右拉开的效果
2022-03-15 直播平台开发,点开大图后,任意点击图片位置都可关闭当前放大效果
2022-03-15 直播平台制作,利用python批量读取存储图片
点击右上角即可分享
微信分享提示