在我们使用 laravel-admin 作为系统管理后台的时候经常会用到 editor 作为编辑器来给我们编辑内容,但是在 laravel-admin 的官网上只介绍了怎么下载使用,其中有一个问题就是上传图片的问题,我们需要开发一个上传图片的接口。

基本的下载安装去看 laravel-admin 官网,下面我来贴一下代码

先来新建一个 ImageUploadHandler.php 来作为处理传入的图片:

<?phpnamespace App\Handlers;class ImageUploadHandler
{// 只允许以下后缀名的图片文件上传protected $allowed_ext = ["png", "jpg", "gif", 'jpeg'];public function save($file, $folder, $file_prefix){// 构建存储的文件夹规则,值如:uploads/images/avatars/201709/21/// 文件夹切割能让查找效率更高。$folder_name = "uploads/$folder/" . date("Ym", time()) . '/'.date("d", time()).'/';// 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。// 值如:/home/vagrant/Code/larabbs/public/uploads/images/avatars/201709/21/$upload_path = public_path() . '/' . $folder_name;// 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在$extension = strtolower($file->getClientOriginalExtension()) ?: 'png';// 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID // 值如:1_1493521050_7BVc9v9ujP.png$filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' . $extension;// 如果上传的不是图片将终止操作if ( ! in_array($extension, $this->allowed_ext)) {return false;}// 将图片移动到我们的目标存储路径中$file->move($upload_path, $filename);return ['path' => config('app.url') . "/$folder_name/$filename"];}
}

然后新建 UploadController 接口:

<?phpnamespace App\Admin\Controllers;use App\Http\Controllers\Controller;
use App\Handlers\ImageUploadHandler;
use Illuminate\Http\Request;class UploadController extends Controller
{public function upImage(Request $request, ImageUploadHandler $uploader){// 初始化返回数据,默认是失败的$data = ['errno'   => 1,];// 判断是否有上传文件,并赋值给 $fileif ($file = $request->upload_file) {// 保存图片到本地$result = $uploader->save($request->upload_file, 'admin', 1, 1024);// 图片保存成功的话if ($result) {$data['data'][] = $result['path'];$data['errno']   = 0;}}return $data;}
}

然后我们还需要修改一个 wangEditor.php 的代码:

<?phpnamespace App\Admin\Extensions;use Encore\Admin\Form\Field;class WangEditor extends Field
{protected $view = 'admin.wang-editor';protected static $css = ['/vendor/wangEditor-3.0.9/release/wangEditor.min.css',];protected static $js = ['/vendor/wangEditor-3.0.9/release/wangEditor.min.js',];public function render(){$name = $this->formatName($this->column);$token = csrf_token();$this->script = <<<EOT
var E = window.wangEditor
var editor = new E('#{$this->id}');
editor.customConfig.zIndex = 0;
editor.customConfig.debug = true;
editor.customConfig.pasteFilterStyle = true
editor.customConfig.uploadImgServer = '/admin/up_image';
editor.customConfig.uploadFileName = "upload_file";
editor.customConfig.uploadImgParams = {_token: '{$token}'
}editor.customConfig.onchange = function (html) {$('input[name=$name]').val(html);
}
editor.create()EOT;return parent::render();}
}

最后在路由中新加一个路由就行了。

laravel-admin 使用 wangEditor 的一些小方法相关推荐

  1. php 多图上传编辑器,laravel中使用WangEditor及多图上传

    1. 创建项目及安装所需安装包 1.1 创建项目 composer create-project laravel/laravel=5.3 blog_wangeditor --prefer-dist 1 ...

  2. 最棒的 7 个 Laravel admin 后台管理系统推荐 - 卡拉云

    本文完整版:<最棒的 7 个 Laravel admin 后台管理系统推荐> 目录 Laravel admin 后台管理系按类型选择 脚手架型 CRUD 接口型 可视化编程 新一代低代码开 ...

  3. Laravel中encrypt与decrypt的实现方法详解

    这篇文章主要给大家介绍了关于Laravel中encrypt和decrypt的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习 ...

  4. 一个java删除文件夹的小方法

    java删除文件夹都是从里向外删除,使用递归的方法. public class IO_FILEdemo09 {public static void main(String[] args) {// TO ...

  5. 测试网站访问速度的几个小方法

    1:用Ping命令简单测网站速度的方法 Ping可以用来检查网络是否通畅或者网络连接速度,点击开始→运行 在运行中输入"cmd"回车或点击确定,输入ping www.你的网址.co ...

  6. python方法测试_python 测试常用小方法

    python 测试常用的小方法 def xia_to_tuo(src: str, firstUpper: bool = False): """ 将下划线分隔的名字,转换为 ...

  7. 盘点上班族和大学生都适用的8个赚外快的小方法 总有一个适合你

    每天不论是工作还是学习,都会有很多空闲时间,那么怎么使这些时间变成金钱呢?今天给大家推荐几个赚外快的小方法其实每一个操作的门槛都不高,关键是看个人的执行力了.最忌讳的就是大钱赚不到,小钱看不上.在执行 ...

  8. 11个提升编程能力的小方法

    编程是当今社会最为实用的技能之一.从能够创造一个公司网站到知道怎么修复一个重定向错误,这些技能带来的价值,不管是对雇主还是对程序员自身,都是无法估量的. 但是,保持你当前的状态,停滞不前,那你永远无法 ...

  9. app store 服务器维护,AppStore无法连接怎么办?几个小方法教你解决问题

    原标题:AppStore无法连接怎么办?几个小方法教你解决问题 苹果用户都知道,AppStore我们下载应用的地方,无论是自带软件还是第三方软件都能在这里找到.但是有时候我们会遇上AppStore无法 ...

最新文章

  1. Vue集成Iframe页面
  2. SDWAN分支解决方案:sdwan能用于多分支的企业吗?
  3. 分布式系统原理 之2 基本副本协议
  4. 【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了
  5. Pwn2Own 2021奥斯汀黑客大赛公布类别、目标及奖金
  6. BP神经网络——matlab具体解决实际问题
  7. c语言opengles程序,OpenGL教程 OpenGL编程指南
  8. delphi商业源码
  9. php爬虫框架phpspider,第一次使用php编写爬虫,使用了phpspider包
  10. RNA 6. 差异基因表达之-- 火山图 (volcano)
  11. Linux主机驱动与外设驱动分离思想 1
  12. Testing——Embedded MongoDB Database
  13. cad2017单段线_AutoCAD2017命令总结
  14. iphone11拍照没有咔嚓声
  15. word没有标题3和标题4的解决方式
  16. 在代码中实现对各进程内存的监控
  17. html5侧匡下拉注释,可圈可点网资料
  18. angularjs源码阅读-1-模块加载器
  19. knn算法,利用numpy简单实现
  20. 你想要的免费ppt资源(我帮你准备好啦!)

热门文章

  1. qt调用opencv汇总(2)
  2. C/C++报错:全局变量重定义或是多次定义
  3. Aspose.Cells使用总结大全
  4. 什么变量在堆内存里存放,什么变量在栈内存里存放
  5. spring连接mysql出现问题_使用spring连接mysql数据库出错
  6. 图片上传压缩android,android 图片上传压缩常见问题分析
  7. 阿尔伯塔大学的计算机科学专业好吗,阿尔伯塔大学哪个专业好?三大热门方向成就高薪未来...
  8. ug区域轮廓铣没有重叠距离_UG数控加工编程 _固定轴、可变轴曲面轮廓铣图文详解...
  9. 支付宝小程序-点击退出小程序
  10. Android开发之简单修改TabLayout默认文字大小的方法(亲测可用)