PHP+CKEditor 3配置详细说明(包括图片上传)
首先,我们要在页面中加入CKEditor的js文件:
<head>
...
<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>
</head>
其次,在你要插入编辑器的地方插入如下代码:
<textarea name="editor">文本的默认HTML代码</textarea>
其中,"editor"是以后你要传给后台脚本语言的post名,也是js要用到的名称。然后,在该页的最底下插入:
<script type="text/javascript">
CKEDITOR.replace( 'editor');
</script>
上面这段js代码要在你的页面载入完成后插入,你也可以把它放在windows.onload中。
这样,测试一下,一个简单的编辑器就完成了。
接下来,我们要对我们的编辑器做一配置,配置的方式有很多,为了方便起见,我选择了目录下的config.js文件来进行配置。很多的配置我们都可以使用 默认值,在这里,常用的配置如下,如果你想了解全部的配置信息,可以到这里来查看,也可以到CKEditor的官方网站看文档。
//界面的语言配置 设置为'zh-cn'即可
config.defaultLanguage = 'en';
//默认的字体名 plugins/font/plugin.js
config.font_defaultLabel = 'Arial';
//字体编辑时的字符集 可以添加常用的中文字符:宋体、楷体、黑体等 plugins/font/plugin.js
config.font_names = 'Arial;Times New Roman;Verdana';
//字体编辑时可选的字体大小 plugins/font/plugin.js
config.fontSize_sizes ='8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px'
//编辑器的高度
config.height = 200
//界面的现实语言 可选择"zh-cn"
config.language = true
//可选界面包
config.skin = 'default';
//使用的工具栏 plugins/toolbar/plugin.js 当然你也可以使用自己的工具栏
config.toolbar = ‘Full'
这将配合:
config.toolbar_Full =
[
['Source','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
'/',
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
'/',
['Styles','Format','Font','FontSize'],
['TextColor','BGColor']
];
config.toolbar = 'Buaa'; //选择界面功能
//定义界面工具
config.toolbar_Buaa =
[
['Source','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
'/',
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
'/',
['Styles','Format','Font','FontSize'],
['TextColor','BGColor']
];
//编辑器的宽度 plugins/undo/plugin.js
config.width = ""
图片上传
CKEditor的原包中没有包含图片的上传服务器端处理文件,其公司的另一款开源产品:CKFinder做了很好的补充。但是要下载这个源代码再进行配 置,虽然方便了很多,但是仅仅为了上传图片,却要使用这么大的整个系统来使用,确实有点大材小用,我花了一个下午的时间,自己用PHP脚本写了一个处理上 传文件的脚本代码,没有做更多的安全处理,希望对大家有用。
首先,在你的config.js文件里添加如下代码:
CKEDITOR.editorConfig = function( config )
{
config.filebrowserImageUploadUrl = './upload.php?type=img';
config.filebrowserFlashUploadUrl = './upload.php?type=flash';
};
以上的配置是上传要处理到的文件的地址,你可以根据自己情况进行修改。upload.php文件如下:
<?php
/*
CKEditor_upload.php
monkee
2009-11-15 16:47
*/
$config=array();
$config['type']=array("flash","img"); //上传允许type值
$config['img']=array("jpg","bmp","gif"); //img允许后缀
$config['flash']=array("flv","swf"); //flash允许后缀
$config['flash_size']=200; //上传flash大小上限 单位:KB
$config['img_size']=500; //上传img大小上限 单位:KB
$config['message']="上传成功"; //上传成功后显示的消息,若为空则不显示
$config['name']=mktime(); //上传后的文件命名规则 这里以unix时间戳来命名
$config['flash_dir']="/ckeditor/upload/flash"; //上传flash文件地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/"
$config['img_dir']="/ckeditor/upload/img"; //上传img文件地址 采用绝对地址 采用绝对地址 方便upload.php文件放在站内的任何位置 后面不加"/"
$config['site_url']=""; //网站的网址 这与图片上传后的地址有关 最后不加"/" 可留空
//文件上传
uploadfile();
function uploadfile()
{
global $config;
//判断是否是非法调用
if(empty($_GET['CKEditorFuncNum']))
mkhtml(1,"","错误的功能调用请求");
$fn=$_GET['CKEditorFuncNum'];
if(!in_array($_GET['type'],$config['type']))
mkhtml(1,"","错误的文件调用请求");
$type=$_GET['type'];
if(is_uploaded_file($_FILES['upload']['tmp_name']))
{
//判断上传文件是否允许
$filearr=pathinfo($_FILES['upload']['name']);
$filetype=$filearr["extension"];
if(!in_array($filetype,$config[$type]))
mkhtml($fn,"","错误的文件类型!");
//判断文件大小是否符合要求
if($_FILES['upload']['size']>$config[$type."_size"]*1024)
mkhtml($fn,"","上传的文件不能超过".$config[$type."_size"]."KB!");
//$filearr=explode(".",$_FILES['upload']['name']);
//$filetype=$filearr[count($filearr)-1];
$file_abso=$config[$type."_dir"]."/".$config['name'].".".$filetype;
$file_host=$_SERVER['DOCUMENT_ROOT'].$file_abso;
if(move_uploaded_file($_FILES['upload']['tmp_name'],$file_host))
{
mkhtml($fn,$config['site_url'].$file_abso,$config['message']);
}
else
{
mkhtml($fn,"","文件上传失败,请检查上传目录设置和目录读写权限");
}
}
}
//输出js调用
function mkhtml($fn,$fileurl,$message)
{
$str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$fn.', \''.$fileurl.'\', \''.$message.'\');</script>';
exit($str);
}
?>
附上这个upload.php文件的下载地址:http://download.csdn.net/source/1795185
转载于:https://www.cnblogs.com/zhexiao/archive/2012/03/30/2425861.html
PHP+CKEditor 3配置详细说明(包括图片上传)相关推荐
- 关于 Nuxt 集成ueditor的一些坑(包括图片上传)前端部分
最近公司接了一个项目,里面用到富文本编辑器,刚开始用的是vue-quill-editor,这个编辑器轻量.好用.最重要的是它有专门正对nuxt的版本,很容易配置,可以放心使用,不用担心bug之类的,遇 ...
- gin 怎么通过 post 发送结构体_Go Web 框架 Gin 实践12—优化配置结构及实现图片上传...
Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! 项目地址:https://github.com/EDDYCJY/go-gin-example 如果对你有所帮助,欢迎点 ...
- CKEditor的使用,并实现图片上传
ckeditor是一款富文本编辑器,类似于论坛帖子下边的回复输入框. 1.先要下载相应js文件,点我下载.根据自己的需求选择插件的丰富程度,下载后解压得到一个文件夹,放到webRoot目录下. 2.在 ...
- ckeditor ——在图片上传中上传其他文件(word等)
最近项目中遇到需要用富文本编辑文档,最终以公告的形式在内网中展示,其中一个简单的要求就是要有附件.因为知道ckeditor是有图片的上传了,于是想是不是也可以上传如word,pdf等附件呢.这样内网展 ...
- php上传图片限制类型,php,_使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置,php - phpStudy...
使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 $upl ...
- ueditor编辑器php上传配置,Ueditor编辑器图片上传自定义配置
U需朋者说上事是础一发一开程和开数的目前间editor图片上传自新直能分支调二浏页器朋代说,事刚定义配置 不使用自带后遇新是直朋能到分览台配置 1开进架触我法端位画近发行思发们识和移的近.加载Uedi ...
- uniapp 图片上传插件使用说明
插件地址:https://ext.dcloud.net.cn/plugin?id=4589 使用说明 本插件是一个云端上传插件,能够将本地的文件包括图片上传到云存储,ImageX是火山引擎推出的专业图 ...
- 测试上传图片晰度+测试多数量图片上传
你可能会发现,复制进来的图片默认的大小不是你想要的,那么就设置一下它的默认大小吧:在图像的"高级"选项里,点击圈中的那个按钮,就会出现"默认图像大小"的选框.设 ...
- CKEditor4.7之使用实现图片上传功能
步骤 1.下载CKEditor4.7 官网下载CKEditor,基础包,标准包,全包选择其一.地址:https://ckeditor.com/ckeditor-4/download/ 2.将文件CKE ...
最新文章
- 简述html 布局的原理,css布局原理与实现-2019年9月4日20时
- PC微信逆向:分析微信发送文件call
- 【洛谷P3106】[USACO14OPEN]GPS的决斗Dueling GPS's
- 洛谷 - P1308 统计单词数(字符串+模拟)
- tp连接mysql mysql_thinkphp学习简易教程(二) thinkphp连接读取MySQL数据库
- 在win10 或者win7系统下装双系统ubuntu16.04教程
- 人生历练必备的十个心态(图)
- C++文件读写函数之——fopen、fread和fwrite、fgetc和fputc、fgets和fputs、ftellf和fseek、rewind...
- abp.net mysql_ABP .Net Core Entity Framework迁移使用MySql数据库
- 做机器学习的是些什么样的人?Kaggle做了一份居委会式的调查
- Shiro总结和常见面试题
- C语言编程题:平方数
- java kvm_KVM环境搭建
- BAT布局SDN!Barefoot获阿里巴巴和腾讯2400万美元投资
- HTML5 开发工具
- java判断所有域名后缀_使用Java的IO操作,提取全世界所有的三位域名后缀
- 电脑每次重启总是会进行磁盘检查
- 4412运行java_Tiny4412 Android 启动流程
- 最老程序员开发实训10--Android---应用介绍页面实现2
- 如何用c语言实现ax+by+cz=G所有的正整数的解的输出丫?
热门文章
- java多线程阶乘_【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )...
- 新疆师范大学计算机研究生值得读吗,研究生还值得读吗
- hibernate一级缓存_Hibernate缓存–一级缓存
- Python字符串replace()
- C语言基础教程之头文件
- C++高级教程之多线程
- AGC002E(AtCoder1999) Candy Piles(博弈论)
- vue $emit子组件传出多个参数,如何在父组件中在接收所有参数的同时添加自定义参数...
- Maven系列(一):Maven简介
- java基础----集合操作---实例----List集合的初始化