直播源码开发,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及上传图片,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-15 直播app开发,加载时采用序幕从左向右拉开的效果
2022-03-15 直播平台开发,点开大图后,任意点击图片位置都可关闭当前放大效果
2022-03-15 直播平台制作,利用python批量读取存储图片