• CkEditor文本编辑器配合ckfinder上传功能在.net中的使用步骤


    1.官网下载ckeditor: http://ckeditor.com/download   本文使用Version:CKEditor 3.6.4 for ASP.NET, Released 8 Aug 2012

    2.选择_Samples目录下面的ckeditor,删除 CHANGES.html、INSTALL.html、LICENSE.html后,把整个ckeditor复制到网站根目录下面的 js目录下面

    3.使用: 引入ckeditor.js文件,在页面添加TextBox服务器文本框,并设置CssClass=”ckeditor” TextMode=”MultiLine”或者使用textarea:如

    <script src="/js/ckeditor/ckeditor.js" type="text/javascript"></script>
    <asp:TextBox CssClass="ckeditor" TextMode="MultiLine" ID="txtContent" runat="server"></asp:TextBox>
    <textarea id="_ckeditor" name="_ckeditor" rows="2" cols="20" class="ckeditor"></textarea>
    

    4.至此,就可以看到基本效果了,但是 asp.net默认情况下,不允许提交包含html源代码的表单,这在很大程度上防止了跨站(提交)攻击,但是ckeditor/fckeditor之类的富文本编辑器肯定是要生成html源代码的,因此通常的办法是修改web.config
    asp.net2.0/3/3.5时可以这样做:<pages validateRequest="false"></pages>
    asp.net4.0,这样还不够,必须写成这样: <pages validateRequest="false"></pages>   <httpRuntimerequestValidationMode="2.0"/>
    这样虽然解决了问题,但是同时也降低了安全性,因此使用以下思路:
    客户端--表单中增加一个隐藏控件,提交时先把ckeditor的内容用url编码后,赋值给该隐藏控件,然后清空ckeditor的值。
    服务端--接收该隐藏控件的值做为ckeditor的内容,同时接收时先url解码。

    具体完整代码如下:

    javascript部分:

        <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
        <script type="text/javascript" src="js/ckeditor/ckeditor.js"></script>
        <script type="text/javascript">
            //点击提交时
            function onSubmit(btn) {
                //CKEDITOR.instances.后面为使用classc="keditor"的控件的id
                var editor = CKEDITOR.instances._ckeditor;
                $("#txtContent").val(CKEDITOR.tools.htmlEncode(editor.getData()));
                //清空ckeditor,否则仍然会提示错误
                editor.setData("");
            }
        </script>

    html部分:

            <textarea id="_ckeditor" name="_ckeditor" rows="2" cols="20" class="ckeditor"></textarea>
            <asp:TextBox ID="txtContent" Visible="false" runat="server" />
            <asp:Button ID="btAdd" Text="提交" OnClientClick="return onSubmit(this);" OnClick="btAdd_Click" runat="server" />

    后台取值:

                string s = HttpUtility.HtmlDecode(txtContent.Text.Trim());

    此法虽然 绕过了系统默认的安全防御,很容易被提交恶意代码,所以在服务器端还需要进行安全的验证。

    6.上传功能

    6.1  官网下载CKfinder  http://cksource.com/ckfinder/download   本文使用 ckfinder_aspnet_2.4

    6.2  删除CKFinder文件夹中的_source文件夹、 _sample文件夹、changelog.txt、install.txt、license.txt、translations.txt,把整个ckfinder复制到网站根目录下面的 js目录下面

    6.3  打开“ckeditorconfig.js”文件,在CKEDITOR.editorConfig = function (config) { 下面添加配置文件

        //使用ckfinder上传功能
        //CKFinder.SetupCKEditor(null, '/js/ckfinder/'); //注意ckfinder的路径对应实际放置的位置
        var dir = "/js";
        config.filebrowserBrowseUrl = dir + '/ckfinder/ckfinder.html'; //上传文件时浏览服务文件夹
        config.filebrowserImageBrowseUrl = dir + '/ckfinder/ckfinder.html?Type=Images'; //上传图片时浏览服务文件夹
        config.filebrowserFlashBrowseUrl = dir + '/ckfinder/ckfinder.html?Type=Flash';  //上传Flash时浏览服务文件夹
        config.filebrowserUploadUrl = dir + '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Files'; //上传文件按钮(标签)
        config.filebrowserImageUploadUrl = dir + '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Images'; //上传图片按钮(标签)
        config.filebrowserFlashUploadUrl = dir + '/ckfinder/core/connector/aspx/connector.aspx?command=QuickUpload&type=Flash'; //上传Flash按钮(标签)

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    Java实现 蓝桥杯 历届试题 城市建设
    Java实现 蓝桥杯 历届试题 城市建设
    Java实现 蓝桥杯 历届试题 城市建设
    Java实现 蓝桥杯 历届试题 城市建设
    MYSQL创建数据库时候直接指定编码和排序规则
    Eclipse 安装插件(aptana、svn 、git、Java EE、JSHint)
    (转)CentOS无损调整磁盘分区大小的实现方法
    Linux(centos)系统各个目录的作用详解
    Ecplise插件安装方法
    Fedora25 将eclipse的快捷方式添加到Applications中
  • 原文地址:https://www.cnblogs.com/ful1021/p/4804474.html
Copyright © 2020-2023  润新知