当前位置: 首页 > 编程日记 > 正文

ckeditor finder php,CKEDITOR CKFINDER的图片上传配置(C#/asp.net/php)

CKEDITOR+CKFINDER的图片上传配置(C#/asp教程.net/php教程)

php

keditor的代码全部重写,但里面没有了上传功能,只是一个纯粹的文件在线编辑器,如果需要上传图片,还需要下载ckfinder。

首先去官方上下载源代码,然后分别解压缩在网站根目录里(默认ckeditor和ckfinder文件夹里,一般不需要改动)

在所需要的页面插入JS

var editor = CKEDITOR.replace(‘timu’);

CKFinder.SetupCKEditor(editor, ‘../ckfinder/’); //ckfinder总目录的相对路径.

再修改ckfinder/config.php 里CheckAuthentication函数,返回改为ture(默认为fasle)

这样就能够实现上传功能了。

如果上面的方法不行可以试一下

1. 下载安装 CKEditor:

http://ckeditor.com/

解压下载到的CKEditor放到网站的路径中即可

2. 下载安装 CKFinder:

http://ckfinder.com/download

解压下载到的CKFinder放到与CKEditor同一目录中即可

3. 在网页中使用 CKEditor 和 CKFinder:

CKEditor 实际是替换一个 textarea 标签,所以把textarea放到一个form中,当提交到php服务器端,使用$_GET['xxx'] 或者 $_POST['xxx'] 取得编辑好的数据。注意,因为 CKEditor 要替换 textarea,所以相应的javascript 代码"CKEDITOR.replace(xxxxxx)" 要放在 textarea 的后面。

最简单的方法,直接新建一个test.html文件(和ckeditor、ckfinder处于同一级目录)使用下面的例子修改一下即可。在浏览器里浏览test.html就可以在网页中看到 CKEditor 了,兴奋吧。

CKEditor

4. 配置CKFinder进行上传图片,Flash等。

到这里,点击 "Image" 按钮,在弹出的窗口中的 "Upload" 标签中已经看到上传按钮了,但是在上传文件时失败。因为CKFinder还没有配置好。需要创建上传文件的目录和修改 ckfinder/config.php 里的三个地方:

a. 创建保存上传文件的目录,如upload

(把upload文件夹也放在和ckeditor、ckfinder处于同一级目录,三个目录都位于项目目录下)

其路径为 /upload/

[For Linux: 把其权限设置为php server可读写,最简单的是 chmod 777 upload 这样php server才有权限往里面保存文件.]

b. 找到配置文件(ckfinder/config.php)第32行,把 function CheckAuthentication () { return false; }

修改成 function CheckAuthentication() { return true; }

c. 找到第63行,把 $baseUrl 的值改成保存上传文件存目录的URL,

如 $baseUrl = '/项目名/upload/';(这里的地址要从项目目录开始的绝对路径,确定上传目录已经存在)

d. 找到第82行,删除 $baseDir = resolveUrl($baseUrl); 修改 $baseDir 为上传文件目录的绝对路径 ,(本地测试的时候要从磁盘的跟目录下开始,即C:/或者D:/的直接目录)

如$baseDir = '/Apache2/htdocs/ck/upload/'; (Apache2是D:/盘下的直接目录)

这 是因为resolveUrl($baseUrl)函数不能正常工作。

至此,可以使用 CKEditor 和 CKFinder 上传文件了。

对上面这个小例子中服务器端的b.php代码:

header("Content-Type:text/html; charset=utf-8");

$str = $_POST['editor1'];

echo $str;

?>

可以看到,在点击submit按钮后,服务器端收到了CKEditor中的内容,并使用echo输出,生成一个与CKEditor里面编辑的完全一样的内容。在服务器端可以把收到的内容保存到数据库教程中。然后再读出在相应的页面显示出来。

---------------------------------------------------------------------------------------------------------

fckeditor的上传图片中,有一个可以浏览服务器目录的功能,如果在后台,是可以开放使用的,如果是前台用户访问就不要使用这个功能。

不过浏览图片不是很方便,ckfinder 就很好的简单了这个问题

fckeditor的配制如下:

修改文件:

fckeditoreditorfilemanagerconnectorsphpconfig.php

// $Config['Enabled']改过true,允许上传

$Config

[

'Enabled'

]

=

true

;

//$Config['UserFilesPath'] 设置相对于根目录的上传目录,目前来说没有用,因为实际上传在下面的配制中

$Config

[

'UserFilesPath'

]

=

"/upload/"

;

//$Config['UserFilesAbsolutePath']  上传的图片位置,包括根目录

$Config

[

'UserFilesAbsolutePath'

]

=

'/public/upload/'

;

设置ckfinder的config.php

$baseUrl

=

'/upload/'

;

// 在CheckAuthentication 改为return true,这里可以加入自己的权限判断。

function

CheckAuthentication(

)

{

return

true

;

}

程序代码中使用

$fckeditor

=

new

FCKeditor(

$fckname

)

;

$fckeditor

->

BasePath

=

'/js/fckeditor/'

;

//$toolbar_set 设置工具栏 默认值: Default

$fckeditor

->

ToolbarSet

=

$toolbar_set

;

// $width 宽度

$fckeditor

->

Width

=

$width

;

// $height 高度

$fckeditor

->

Height

=

$height

;

//皮肤文件的路径

$fckeditor

->

Config

=

array

(

'SkinPath'

=>

$SkinPath

)

;

$fckeditor

->

Value

=

$value

;

//在fckedior这前使用CKFinder

CKFinder::

SetupFCKeditor

(

$fckeditor

,

"/js/ckfinder/"

)

;

$fckhtml

=

$fckeditor

->

Create

(

)

;

下面为详细的c#配置方法

CKEditor和CKFinder的最新版可以到官方网站(http://cksource.com)上下载获得。

把以上两个资源放到网站的根目录: /CKEditor 和 /CKFinder (不区分大小写)

在页面使用 CKEditor:

hello world!

CKEDITOR.replace('content', { height: 200, width: 520 });

CKEditor 本身不自带上传功能,所以需要配合CKFinder才可以实现上传

第一步:网站需要引用CKFinder的dll(目录:/CKFinder/bin/Release/CKFinder.dll)

第二步:配置CKEditor的config.js (目录:/CKEditor/config.js ) 在CKEDITOR.editorConfig函数里加上,不需要的功能可以去掉

config.filebrowserBrowseUrl= '/ckfinder/ckfinder.html'; //上传文件时浏览服务文件夹

config.filebrowserImageBrowseUrl= '/ckfinder/ckfinder.html?Type=Images'; //上传图片时浏览服务文件夹

config.filebrowserFlashBrowseUrl= '/ckfinder/ckfinder.html?Type=Flash';  //上传Flash时浏览服务文件夹

config.filebrowserUploadUrl = '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files'; //上传文件按钮(标签)

config.filebrowserImageUploadUrl= '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images'; //上传图片按钮(标签)

config.filebrowserFlashUploadUrl= '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash'; //上传Flash按钮(标签)

配置完成后CKEditor 就带有上传功能了,但假如上传图片时,图片的文件是用原来图片的名字,想改为随机文件名呢,怎么办?接着看第三步。

第三步:修改CKFinder的源码。CKFinder自带有源码,目录:/CKFinde/_source

在VS里新建一个 现在的项目 指向CKFinde/_source/CKFinder.Net.sln

1) 打开/Settings/ConfigFile.cs文件

定位27行,添加一个属性:public bool RandomReName; //随机重命名

定位67行,给刚才的属性赋值:RandomReName = true; //默认值为true

保存关闭文件

2) 打开/Connector/Config.cs文件

定位62行,添加一个属性:

public bool RandomReName

{

get { return Settings.ConfigFile.Current.RandomReName; }

}

保存关闭文件

3) 打开/Connector/CommandHandlers/FileUploadCommandHandler.cs文件

定位64行,添加一句判断代码:

if ( Config.Current.RandomReName)  //使用随机名

sFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + sExtension;

保存关闭文件

4) 重新生成项目,把/ckfinder/_source/bin/Debug/CKFinder.dll覆盖/ckfinder/bin/Release/CKFinder.dll或者网站项目去掉之前加入的引用再重新从CKFinder.Net项目里的Dll

最后一步:打开/ckfinder/config.ascx

定位42行,添加一属性:(其实这个加不加都可以的,因为之前有设置默认值,但使用原名时一定要设置为false)

//上传完毕后使用随机文件名

RandomReName = true;

保存关闭

好了,到此已经配置成功了,CKEditor 可以有上传功能了。其它的功能的设置,有空再继续研究~

还要提醒一句:CKEditor 和 CKFinder 文件夹里有很多不需要的东西,例如名字带有下划线前辍的,.net项目不需要php,asp的。

如果上传文件出现错误:因为安全原因,文件不可浏览. 请联系系统管理员并检查CKFinder配置文件.

需要修改config.ascx文件中

public override bool CheckAuthentication()

{

reture false;

}

修改为:

public override bool CheckAuthentication()

{

// 窗体验证时用

return Request.IsAuthenticated;

//reture true; 不推荐使用

}

相关文章:

Linux 常用命令——df, du, ln

1. df 列出文件系统的整体磁盘使用量 2. du 评估文件系统的磁盘使用量(常用在推估目录所占容量),也可以计算文件或文件夹大小 3. ln 创建实体连接(hard link) 或 符号连接(Symbolic Link) 转载于:https://www.cnblogs.com/bigben0123/p/3238199.html

nio selector

为什么使用Selector? 仅用单个线程来处理多个Channels的好处是,只需要更少的线程来处理通道。事实上,可以只用一个线程处理所有的通道。对于操作系统来说,线程之间上下文切换的开销很大,而且每个线程都要占用系统的一些资源&…

青少年编程竞赛交流群周报(第039周)

2021年11月28日(周日)晚20:00我们在青少年编程竞赛交流群开展了第三十九期直播活动。 一、直播内容 我们直播活动的主要内容如下: 讲解了上次测试中小朋友们做错的题目 Scratch青少年编程能力等级测试模拟题(四级)。…

linux查找以h结尾的文件,【linux_笔记】Linux_文件查找(find)详解特殊权限

学习记录过程中难免出现错误,如有发现,还望大神们指出。示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行。示例仅供参考(练习题在附录)。文件查找:locate(不常用):非…

AngulerJS学习(五)按需动态载入文件

在此之前我么年首先要先了解几个东西: $q 简单介绍: $q:主要解决的是异步编程的问题,是指描写叙述通过一个承诺行为与对象代表的异步运行的行动结果的交互。可能会也可能不会再不论什么时候完毕。 我们通过一个小故事理解 $q 服务…

【青少年编程竞赛交流】11月份微信图文索引

11月份微信图文索引 由于“组队学习”这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习,所以,我另外新建了这个微信公众号“青少年编程竞赛交流”,在这个公众号上分享有关青少年编程方面的知识,以及通过编程…

linux内核创建节点,Linux内核驱动自动创建设备节点文件

Linux下生成驱动设备节点文件的方法有3个:1、手动mknod;2、利用devfs;3、利用udev在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可…

javascript publish/subscribe or observer pattern

定义 定义一对多的对象封装,目标对象状态发生变化,它所有的接受者都会收到通知并做相应的更新。 使用频率:5/5 最高 概要 观察者模式,也就是发布者/订阅者模式,当发布者发布一个通知的时候,订阅者就会收到通…

图的遍历——DFS(邻接矩阵)

递归 标记 一个连通图只要DFS一次&#xff0c;即可打印所有的点。 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> #include <malloc.h>using namespace std;const int VERTEX_NUM 20; const int INFINITY 0x…

徐韬:CCF - 个贷违约预测Baseline

徐韬是华北电力大学数理系大四的学生&#xff0c;Datawhale成员/Dreamtech成员&#xff0c;参加了多期Datawhale的组队学习&#xff0c;也在天池/CCF/讯飞等比赛中取得了不错的成绩&#xff0c;现保送大连理工大学软件学院深造。 这篇图文是他在线下组队学习时&#xff0c;为大…

linux 创建crontab文件位置,[基础教程]linux系统的crontab计划任务添加和删除

在linux系统中&#xff0c;有时候为了节省人力&#xff0c;所以将一些脚本进行定时执行&#xff0c;通过crontab计划任务进行启动和停止&#xff0c;这样能方便大部分时间来做其他事情&#xff0c;下面主要介绍一下如何启动和删除crontab计划任务添加计划任务1.首先要准备好要添…

C#利用lambda在函数中创建内部函数

有使用过JS的朋友&#xff0c;相信都知道function。JS中的function是可以在里面在定义一个作为内部使用的。有时为了控制作用域&#xff0c;或者这种小函数只在这个函数体内会使用&#xff0c;所以就不希望在外部在作额外的定义。那C#中有没有这样类似的方式呢&#xff1f;答案…

IntellJ_打开选中的文件所在的文件夹

方法&#xff08;一&#xff09;最简单 idea 打开 setting 找到keymap 搜索 show in explorer 右键设置一个快捷键 我一般设置 alt v 然后点击项目其中一个文件位置 比如我点击一个 hellowworld.class 然后我按 alt v 就会自己打开他在本地的位置 方法&#xff08;二&#x…

姜子上:利用BiLSTM-CRF进行命名实体识别

姜子上是华北电力大学数理系大二的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习。 这篇图文是他在线下组队学习时&#xff0c;为大家分享自己学习“知识图谱”过程中的笔记。 希望参与我们线下组…

linux命令行3d,Linux命令行快捷键

总结一下&#xff1a;1.移动光标&#xff1a;1.1 行首 ctrla1.2 行末 ctrle1.3 前移一字符 ctrlb(注&#xff1a;因为左边的内容先于右边输入 &#xff0c;故向左为向前&#xff0c;向右为向后)1.4 后移一字符 ctrlf1.5 前移一词 altb1.6 后移一词 altf2.删除2.1 删除至行首 ct…

Linux系统配置VI或VIM的技巧

Linux系统配置VI或VIM的技巧作者&#xff1a;IT专家网论坛出处&#xff1a;IT专家网论坛2008-10-28 11:08配置VI和VIM的颜色显示&#xff0c;使它能够高亮度显示一些特别的单词&#xff0c;这对编写程序很有用⋯⋯  1、VI或VIM的配置文件的路径  发现/usr/share/vim/vimrc和…

【组队学习】十一月微信图文索引

十一月微信图文索引 一、组队学习相关 周报&#xff1a; Datawhale组队学习周报&#xff08;第037周&#xff09;Datawhale组队学习周报&#xff08;第038周&#xff09;Datawhale组队学习周报&#xff08;第039周&#xff09;Datawhale组队学习周报&#xff08;第040周&…

僵尸(bot)程序缓解

2019独角兽企业重金招聘Python工程师标准>>> 与浮在表面而广受关注的间谍软件、广告软件、垃圾邮件不同&#xff0c;僵尸程序往往不受注意。它们是散发间谍软件、广告软件、垃圾邮件的罪魁祸首&#xff0c;已经被列为对个人用户及企业 威胁不断增加的一种安全危害。…

Linux火狐解压完运行不了,在Ubuntu系统下firefox账号无法登录的解决

在Ubuntu 16.04系统下默认自带有firefox浏览器&#xff0c;但是使用这个firefox浏览器会发现账号无法登录&#xff0c;原来是在windows系统下的数据没有办法同步&#xff0c;书签也同步不了。经过查询资料后得知&#xff0c;Ubuntu系统下自带的firefox浏览器是国际版本&#xf…

[亿能测试_www.gdtesting.com]测试技术资料网盘共享

[亿能测试_www.gdtesting.com]测试技术资料网盘共享: http://pan.baidu.com/share/home?uk974090852 转载于:https://www.cnblogs.com/preftest/p/3249341.html

【NCEPU】吴丹飞:新闻文章点击预测

吴丹飞是华北电力大学数理系大三的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习&#xff0c;荣获多期优秀队长的称号。 这篇图文是她在线下组队学习时&#xff0c;为大家分享自己参与天池“新闻文…

centos中执行apt-get命令提示apt-get command not found

在centos下用yum install xxxyum和apt-get的区别一般来说著名的linux系统基本上分两大类&#xff1a; 1.RedHat系列&#xff1a;Redhat、Centos、Fedora等 2.Debian系列&#xff1a;Debian、Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 2 包…

在linux上装git教程,教你玩转Git-Linux 平台上安装

导读Git 是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同&#xff0c;它采用了分布式版本库的方…

jsp中如何判断el表达式中的BigDecimal==0

比较蠢一点的做法&#xff1a; <c:if test"${not ((someBigDecimal < 0) or (someBigDecimal > 0))}"> (在JSP2.2里面)好点的做法&#xff1a; ${someBigDecimal.unscaledValue() 0} 使用fn函数的做法: ${fn:isZero(someBigDecimal)} 转载于:https://ww…

zabbix 安装时的报错mysql_connect(): Access denied for us

zabbix在安装完成时的报错出现提示&#xff1a;mysql_connect(): Access denied for user zabbixlocalhost (using password: YES) [include/db.inc.php:77]解决方法&#xff1a;# vim /etc/zabbix/web/zabbix.conf.php ## 修改对应数据库的密码即可&#xff0c; 这是…

【NCEPU】毛慧昀:Matplotlib数据可视化

毛慧昀是华北电力大学计算机系大三的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习&#xff0c;荣获多期优秀队长的称号。 这篇图文是她在线下组队学习时&#xff0c;为大家分享自己学习Matplotlib…

linux qml 环境,利用Qml与Golang打造Gui客户端(二)qamel环境安装

由于种种原因&#xff0c;放弃了therecipe/qt&#xff0c;转向了更为轻量级的qamel&#xff0c;这个库的安装非常简单&#xff0c;跟随着以下步骤就能解决安装安装qamel非常简单&#xff0c;只需要go get -v github.com/go-qamel/qamel即可。如果一切顺利&#xff0c;将会自动编…

uboot readme 文件 (1)

Software Configuration:软件的配置Configuration is usually done using C preprocessor defines; therationale behind that is to avoid dead code whenever possible.使用c的预处理 避免 “dead code” 两种配置变量There are two classes of configuration variables: * C…

青少年编程竞赛交流群周报(第040周)

2021年12月05日&#xff08;周日&#xff09;晚20:00我们在青少年编程竞赛交流群开展了第四十期直播活动。 一、直播内容 我们直播活动的主要内容如下&#xff1a; 讲解了上次测试中小朋友们做错的题目 Scratch青少年编程能力等级测试模拟题&#xff08;四级&#xff09;。演…

用Cordova打包Vue-vux项目

技术搭建&#xff1a;vue vux 首先推荐阅读这篇文章&#xff0c;写的已经很详细了&#xff1a;https://www.jianshu.com/p/25d797b983cd 此处记录下我按照这篇文章打包的时候报的一些错误&#xff0c;方便大家借鉴&#xff1a; 1、当执行最后一步 cordova build android 时&a…