惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
Microsoft Azure Blog
Microsoft Azure Blog
H
Help Net Security
N
News and Events Feed by Topic
Recent Announcements
Recent Announcements
D
Docker
M
MIT News - Artificial intelligence
L
LangChain Blog
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
博客园_首页
MongoDB | Blog
MongoDB | Blog
美团技术团队
S
Schneier on Security
G
GRAHAM CLULEY
月光博客
月光博客
有赞技术团队
有赞技术团队
Vercel News
Vercel News
Scott Helme
Scott Helme
P
Privacy International News Feed
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
Attack and Defense Labs
Attack and Defense Labs
Google Online Security Blog
Google Online Security Blog
Simon Willison's Weblog
Simon Willison's Weblog
量子位
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
Visual Studio Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
NISL@THU
NISL@THU
N
Netflix TechBlog - Medium
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Spread Privacy
Spread Privacy
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
罗磊的独立博客
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Threatpost
L
Lohrmann on Cybersecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
S
Security Affairs
Cloudbric
Cloudbric
爱范儿
爱范儿
H
Heimdal Security Blog
PCI Perspectives
PCI Perspectives

博客园 - Lavenders

Java 正则表达式 量词 --- 三种匹配模式【贪婪型、勉强型、占有型】 信号量与PV操作 java的(PO,VO,TO,BO,DAO,POJO)解释 使用Application对象简单完成网站总访问人数的统计 更新记录后关闭子窗口并刷新父窗口的Javascript jquery jqPlot API 中文使用教程 一款基于bootstrap的datetimepicker VS2010创建Web Service程序 【原创】VS2010中水晶报表与VS2008水晶报表版本冲突问题 【转】XSL和XSLT jQuery历史版本 【转】让Iframe自适应高度 【转】框架集中framespacing、border和frameborder属性的关系 【转】Meta标签详解 ASP.NET保存信息总结(Application、Session、Cookie、ViewState和Cache等) . 【原创】VS2008 Web应用程序带数据库制作安装程序 asp.net中的缓存(三)应用程序数据缓存 asp.net中的缓存(二)局部数据缓存 asp.net中的缓存(一)页面输出缓存
ASP.NET下CKEditor3.6.4结合CKFinder2.3实现文本编辑器的上传功能
Lavenders · 2012-11-16 · via 博客园 - Lavenders

说明:CKEditor和CKFinder只有在ASP.NET Web项目和在ASP.NET网站中路径的设置稍有不同

1、ckeditor配置:

ckeditor是fckeditor的替换版本,功能比fckeditor更强大。

下载:由于针对asp.net开发,所以可以去官网http://ckeditor.com/download下载,注意可以直接找到“CKEditor for ASP.NET”下载。下载后解压。

添加源文件到项目:解压后,将ckeditor_aspnet_3.6.2\_Samples文件夹下的ckeditor文件夹复制到你的visual studio的解决方案资源管理器中项目的根目录下。

添加引用:在项目中添加引用,将ckeditor_aspnet_3.6.2\_Samples\bin文件夹下的CKEditor.NET.dll加入到项目中。

配置:在web.config中:

<pages>
   <controls>
    <add namespace ="CKEditor.NET" assembly="CKEditor.NET" tagPrefix="CKEditor"/>
   </controls>
  </pages>

2、ckfinder配置:

下载:可以去http://ckfinder.com/download下载,注意选择asp.net,下载后解压。

添加源文件到项目:解压后,将ckfinder_aspnet_2.3\ckfinder文件夹复制到你的项目根目录下。然后删除ckfinder_aspnet_2.2.2\ckfinder文件夹下的_samples、_source、bin文件夹(这些文件夹是生成ckfinder.dll程序集和测试用的)。

添加引用:将解压文件夹下ckfinder_aspnet_2.3\ckfinder\bin\debug下的ckfinder.dll添加到网站引用。(注意:也可以不添加此引用。如果需要将ckeditor绑定到ckfinder就需要)。

3、构建页面:

将ckeditor控件加入到测试页面中,

(1)若当前是Web应用程序即WebApplication,则相关属性的路径设置如下,适用于将来在IIS上部署的时候,直接部署成网站:

<form id="form1" runat="server">
    <div>
    <CKEditor:CKEditorControl runat ="server" ID="editor1"
            FilebrowserBrowseUrl="/ckfinder/ckfinder.html"
            FilebrowserFlashBrowseUrl="/ckfinder/ckfinder.html?Type=Flash"
            FilebrowserFlashUploadUrl="/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Flash"
            FilebrowserImageBrowseUrl="/ckfinder/ckfinder.html?Type=Images"
            FilebrowserImageUploadUrl="/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Images"
            FilebrowserUploadUrl="/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Files"></CKEditor:CKEditorControl>
    </div>
    </form>

(2)若当前是网站即website,则相关属性的路径设置如下,适用于将来在IIS上部署的时候,部署成虚拟目录:

<form id="form1" runat="server">
    <div>
    <CKEditor:CKEditorControl runat ="server" ID="editor1"
            FilebrowserBrowseUrl="ckfinder/ckfinder.html"
            FilebrowserFlashBrowseUrl="ckfinder/ckfinder.html?Type=Flash"
            FilebrowserFlashUploadUrl="ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Flash"
            FilebrowserImageBrowseUrl="ckfinder/ckfinder.html?Type=Images"
FilebrowserImageUploadUrl="ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Images"
            FilebrowserUploadUrl="ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&amp;type=Files"></CKEditor:CKEditorControl>
    </div>
    </form>

一定要注意:上述url相关属性配置,这些配置是连接ckeditor和ckfinder的关键(asp.net版本)。其他版本可参考:http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)

很多其他文章介绍说,在ckeditor的config.js中配置也是可以的。那就不需要上述url属性了。改成:

var instance = CKEDITOR.instances['editor1'];

if (instance) { CKEDITOR.remove(instance); }

CKEDITOR.replace('editor1',
    {
        filebrowserBrowseUrl: '/ckfinder/ckfinder.html',
        filebrowserImageBrowseUrl: '/ckfinder/ckfinder.html?Type=Images',
        filebrowserFlashBrowseUrl: '/ckfinder/ckfinder.html?Type=Flash',
        filebrowserUploadUrl: '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files',
        filebrowserImageUploadUrl: '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images',
        filebrowserFlashUploadUrl: '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash'
    });

再次注意:由于是使用ckeditor控件,所以上述代码中的前两行很重要,否则会提示id重复。

如果是在母版页中使用ckeditor控件,要注意使用ClientID属性。

4、配置ckfinder,允许客户端上传:

(1)首先找到ckfinder文件夹下的config.ascx,打开。

修改CheckAuthentication()方法,将return false改成return true.(如果你没有修改的话,应该是第20行代码)

(2)如果要修改默认的用于存储上传文件的路径,可以修改SetConfig()方法中的BaseUrl(默认是第34行代码),指定一个自定义文件夹,要注意此文件夹要有写入权限。默认是在/ckfinder/userfiles/,(适用于WebApplication),如果是网站WebSite,则路径应设置为~/ckfinder/userfiles/

默认设置下,图片文件存放于userfiles/images/,Flash文件存放于userfiles/flash/,文件存放于userfiles/files/

这样可以上传了。