php ckeditor 配置,Laravel5.6框架使用CKEditor5相关配置详解

本文实例讲述了Laravel5.6框架使用CKEditor5相关配置。分享给大家供大家参考,具体如下:

Laravel 相关配置

文件的上传与存储

参考文档:

创建符号链接

php artisan storage:link

project/public/storage -> project/storage/app/public

修改配置文件config/filesystem.php

'default' => env('FILESYSTEM_DRIVER', 'public')

修改nginx和php的配置文件中上传内容大小的限制

#修改nginx配置文件

vim /usr/local/nginx/conf/nginx.conf

http {

include mime.types;

default_type application/octet-stream;

client_max_body_size 10M;

.....

}

#重启nginx

/usr/local/nginx/sbin/nginx -s reload

#修改php-fpm配置文件

vim /usr/local/etc/php/7.2/php.ini

post_max_size = 20M

upload_max_filesize = 20M

#重启php-fpm

/usr/local/sbin/php72-fpm restart

编写文件处理方法

/**

* 处理上传文件

* @return [type] [description]

*/

public function uploadFile(Request $request){

$postFile = 'upload';

$allowedPrefix = ['jpg','png','doc','docx','xls','xlsx','zip','ppt','pptx','rar','pdf'];

//检查文件是否上传成功

if(!$request->hasFile($postFile) || !$request->file($postFile)->isValid()){

return $this->CKEditorUploadResponse(0,'文件上传失败');

}

$extension = $request->file($postFile)->extension();

$size = $request->file($postFile)->getClientSize();

$filename = $request->file($postFile)->getClientOriginalName();

//检查后缀名

Log::info('extension',[$filename=>$extension]);

if(!in_array($extension, $allowedPrefix)){

return $this->CKEditorUploadResponse(0,'文件类型不合法');

}

//检查大小

Log::info('size',[$filename=>$size]);

if($size > 10*1024*1024){

return $this->CKEditorUploadResponse(0,'文件大小超过限制');

}

//保存文件

$path = '/storage/'.$request->file($postFile)->store('images');

return $this->CKEditorUploadResponse(1,'',$filename,$path);

}

/**

* CKEditor 上传文件的标准返回格式

* @param [type] $uploaded [description]

* @param string $error [description]

* @param string $filename [description]

* @param string $url [description]

*/

private function CKEditorUploadResponse($uploaded,$error='',$filename='',$url=''){

return [

"uploaded" => $uploaded,

"fileName" => $filename,

"url" => $url,

"error" => [

"message" => $error

]

];

}

路由配置

#文件上传路由

Route::post('/create/uploadFile','Admin\Articles\CreateController@uploadFile');

#从word中复制内容时,自动上传图片路由

Route::post('/create/uploadFile&responseType=json','Admin\Articles\CreateController@uploadFile');

CKEditor相关配置

CKEDITOR.replace('content',{

height:500,

fileTools_requestHeaders : {

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

},

isFileUploadSupported : true,

filebrowserUploadUrl : '/create/uploadFile',

language : 'zh-cn',

});

Laravel-CSRF保护

首先,在页面head部分添加csrf参数

然后,为CKEditor编辑器的xhr请求增加请求头参数

fileTools_requestHeaders : {

'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

}

隐藏“浏览服务器”按钮

9608445fb028f0e40b9693d487ed41f4.png

“浏览服务器”按钮,用于实现对已上传文件的管理,可以借助CKFinder实现,由于目前没有该需求,并且引入该功能会导致文件安全问题,本文采用了隐藏该按钮的方案。

基本思路是从一下三个文件中,查找关键字browseServer,通过设置display属性隐藏该按钮。

ckeditor/plugins/image/dialogs/image.js

ckeditor/plugins/flash/dialogs/flash.js

ckeditor/plugins/link/dialogs/link.js

image

7009e98fc690f3a252e6f065420549d8.png

flash

c9311cf1fe7b65ce794bc280b804cae7.png

link

9e5671902db6360786e8f5d06f607fb4.png

由于ckeditor中的"上传图片""上传文件""上传FLASH” 三个功能中都有“浏览服务器”按钮,所以我们要修改3个JS文件,先打开ckeditor文件夹中的ckeditor\plugins\image\dialogs\image.js文件,CTRL+F,搜索"browseServer”,找到该词第一次出现的位置,在后面添加双引号内的内容",style:'display:none;'"。如下图:

ffe8c0665f2cc260dfe763ed3e604146.png

再搜索"filebrowser",找到该词第二次出现的位置,如下图填入

d0312244c9fe092258b1542025bc1f29.png

CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击图片上传按钮后,你会发现浏览服务器按钮不见了。

下面去弄掉文件上传中的“浏览服务器”按钮。

打开ckeditor\plugins\link\dialogs\link.js文件,还是搜索"browseServer"第一次出现的地方,如下图插入双引号内的内容",style:'display:none;'"。

89459ad98bd4ba00fc48b018e49811f9.png

CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击“链接”按钮后,你会发现“文件上传选项”中的浏览服务器按钮不见了。

最后弄掉上传FLASH中的浏览服务器按钮,打开ckeditor\plugins\flash\dialogs\flash.js文件,还是搜索"browseServer"第一次出现的地方,如上图位置处插入双引号内的内容",style:'display:none;'"。(这个和上面的几乎一样,就不截图了)。CTRL+S保存该JS文件,出去刷新下自己的ckeditor,点击“上传FLASH”按钮后,你会发现浏览服务器按钮不见了。

至此,一个从前端到后台,浏览服务器被全面禁用了的ckeditor诞生了!

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python通讯录运用的知识点_案例驱动式Python学习--通讯录存取

驱动案例通讯录:要求打印出企业全部十名员工通讯录。(要求有文件相关操作)内置函数自定义函数函数指被封装起来的、实现某种功能的一段代码。Python安装包、标准库中自带的函数统称为内置函数,用户自己编写的函数称为自定义函数,不管是哪种函…

udp怎么保证不丢包_在 Flink 算子中使用多线程如何保证不丢数据?

分析痛点笔者线上有一个 Flink 任务消费 Kafka 数据,将数据转换后,在 Flink 的 Sink 算子内部调用第三方 api 将数据上报到第三方的数据分析平台。这里使用批量同步 api,即:每 50 条数据请求一次第三方接口,可以通过批…

php 没有libmysql.dll,PHP5.3以上版本没有libmysql.dll,以及由此带来的困扰

有朋友下载了PHP5.3,PHP5.4版本想加载mysql支持的时候发现没有libmysql.dll文件,无法完成mysql配置,其实PHP5.3版本开始,使用mysqlnd库,不再使用libmysql.dll用来访问MySQL数据库,大大提升了PHP的数据库访问…

堆排序时间复杂度_图解堆结构、堆排序及堆的应用

前言这次我们介绍另一种时间复杂度为 O(nlogn) 的选择类排序方法叫做堆排序。我将从以下几个方面介绍:堆的结构堆排序优化的堆排序原地堆排序堆的应用堆的结构什么是堆?我给出了百度的定义,如下:堆(Heap)是计算机科学中一类特殊的…

农历php,PHP农历公历转换

/*云南省曲靖师范学院计算机科学与工程学院-杨海熙编写2009-9-3*/class Lunar{private $_SMDay array(1 > 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);//定义公历月分天数private $_LStart 1950 ;//农历从1950年开始private $_LMDay array(//差:该年的…

python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。

马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有帐号?立即注册x本帖最后由 wei_Y 于 2014-11-24 19:53 编辑2008121223547917.jpg (56.62 KB, 下载次数: 3)2014-11-17 19:22 上传其实木有上面那么高端啦…

恶意软件分析沙箱在网络安全策略中处于什么位置?

恶意软件分析沙箱提供了一种全面的恶意软件分析方法,包括静态和动态技术。这种全面的评估可以更全面地了解恶意软件的功能和潜在影响。然而,许多组织在确定在其安全基础设施中实施沙箱的最有效方法方面面临挑战。让我们看一下可以有效利用沙盒解决方案的…

php websocket 帧封装,swoole websocket封装类和调用

上代码 ws.php/*** ws 优化 基础类库* User: singwa* Date: 18/3/2* Time: 上午12:34*/class Ws {CONST HOST "0.0.0.0";CONST PORT 9512;public $ws null;public function __construct() {$this->ws new swoole_websocket_server("0.0.0.0", 9512)…

夸克浏览器怎么安装脚本_广告看烦了?别砸手机!这五款浏览器能拯救你

哈喽大家好,欢迎来到黑马公社。随着各种良莠不齐的内容开始泛滥,黑马发现自己很难通过网络第一时间找到自己想要的内容。在电脑上,黑马为自己的每个浏览器都安装了不下三个广告屏蔽插件,而在手机上,很难。先不说手机浏…

php 今天 明天 后天 显示10天,【微信小程序】实现含有今天,明天,后天的日期组件...

封面图.JPG前言做过微信小程序的前端er都知道,小程序有个日期组件,叫picker,但是,需求方要求日期和时间都要显示的,用picker组件的话,那就用到两个picker,date和time,就是说要让用户…

python dlib 年龄 性别_python dlib学习(一):人脸检测

1、环境安装Windows: 旧版本安装pip install xxx.whl。以下是whl文件地址: ​ Python Package Index​ 最新版本安装:不要嫌麻烦,先装上visual studio2015 (C模块)。​ 具体的记不清了,装上cmake和boost,然…

php数组实例,php常用数组函数实例小结

本文实例总结了php常用数组函数。分享给大家供大家参考,具体如下:1. array array_merge(array $array1 [, array $array2 [, $array]])函数功能:将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回结果的…

python预测控制_无人驾驶——4.控制之MPC模型预测控制

源自:《无人驾驶无人驾驶车辆模型预测控制》——龚建伟参考:https://wenku.baidu.com/view/8e4633d519e8b8f67c1cb9fa.html0.车辆模型汽车的车轮转角为δf分别做垂直于后轮和前轮的射线,这两根射线会交于O点,两轮模型会绕O点进行运…

php实现git服务器,如何搭建和配置Git服务器

本篇文章给大家带来的内容是介绍如何搭建和配置Git服务器,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。安装Git安装依赖yum install curl-devel expat-devel gcc gcc-cyum install perl perl-devel gettext-devel openssl-…

手机连接投影机的步骤_投影机安装过程详解

投影机安装过程详解一 投影机的安装方式1、桌面摆放桌面投影虽然看起来不是很美观,但可以省去那些繁琐的步骤,只需要准备一张桌子,还可以购买一些专门用来摆放投影机的可移动小车架,把投影机往上一放,连接上线缆就可以…

php memcached close,PHP连接Memcached安装及数据库操作

memcached介绍Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据。很多网站通过使用 Memcached提高网站的访问速度,尤其是对于大型的需要频繁访问数据的网站。Memcached是典…

坏道修复是不是硬盘东西全部都没有了_硬盘有坏道就不能用了吗?别再吃哑巴亏了,今天跟大家再说一次...

硬盘是电脑的存储硬件,是电脑中核心的硬件之一,目前市场上主要使用的是固态硬盘与机械硬盘两种,固态硬盘的读写速度较快,容量小,价格贵,机械硬盘读写速度慢,容量大价格便宜,现在的电…

html5+php调用android手机图片,html5+exif.js+canvas+php实现手机上传图片,图片损坏无法打开...

上传图片,图片损坏无法打开,图片路径也是正确的,function selectFileImage(fileObj) {var file fileObj.files[0];//图片方向角 added by lzkvar Orientation null;if (file) {console.log("正在上传,请稍后...");var rFilter /…

word 编辑域中的汉字_15条Word常用操作教程,简单实用,纯干货分享,收藏备用!...

点击蓝字关注我们1. 去除页眉横线在页眉插入信息的时候经常会在下面出现一条横线,如果这条横线影响你的视觉。这时你可以采用下述的两种方法去掉:用第一种的朋友比较多,即选中页眉的内容后,选取“格式”选项,选取“边框…

matlab里面连接器是什么,连接器

连接器连接器,即CONNECTOR。国内亦称作接插件、插头和插座。一般是指电连接器。即连接两个有源器件的器件,传输电流或信号。它广泛应用于航空、航天、国防等军用系统中。连接器是我们电子工程技术人员经常接触的一种部件。它的作用非常单纯:在…