zoukankan      html  css  js  c++  java
  • 再谈FCKeditor在asp.net 的用法之新增功能:图片分类存放,重命名

    1.原有功能:
    a.在上传图片时,fckeditor2.6.6和fckeditor2.3 for .net 可以根据图片[Image],动画[Flash],链接[Link]等,在默认的userfiles下创建相应的文件夹,如图片 userfiles/Image.
    b.不支持重命名

    2.需求:但在很多的时候,上面的功能无法满足具体的项目需求,比如:项目中有发布新闻的图片,产品图片等.那么,按照上面的功能上传后所有的图片都会在userfiles/Image目录下面,

    根本无法区分哪些是新闻的图片,哪些是产品的图片.
    为了实现上面的需求,修改了Fckeditor源码,新增了ImageSubFolderName属性和ResetImageName属性.

    ImageSubFolderName属性是存放分类图片的名称[我称它为图片二级目录名],默认是Image,即:存放到userfiles/Image.注:为了与原来的功能保持一致. ResetImageName属性是图片名否是重命名, 默认false不重命名.

    3.使用方法;
      a.首先在放置Fckeditor在线编辑器的页面添加一个隐藏控件,无法粘贴图片,只能看代码了,代码如下:
        <FCKeditorV2:FCKeditor ID="FCKeditor1" runat="server" ></FCKeditorV2:FCKeditor>
    <!-- 用于上传文件时,创建相应的文件夹,把上传的文件存储到此名字文件夹下 下面name为ImageSubFolderName的隐藏控件就是新增功能要用的东东了-->
    <!--这里 _ImageSubFolderName 的值是news,创建的文件夹是以此值命名的,id的值必须是ImageSubFolderName,value的值可以是任意的-->
    <input type="text" id="ImageSubFolderName" name="ImageSubFolderName" value="<%=_ImageSubFolderName %>" />
    b.在放置Fckeditor在线编辑器的页面的后台代码增加以下代码:
    protected string _ImageSubFolderName = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
    _ImageSubFolderName = FCKeditor1.ImageSubFolderName;//创建的文件夹是以此值命名的
    //后面是其他的代码
    .....
    }

    到此新功能需要的代码就完成了.此时上传一个图片后,会自动在userfiles目录下创建一个隐藏控件值的文件夹[在这里是创建news文件夹]

    说明:红色代码是新功能要增加的代码

    下载本例源码:http://115.com/file/e6dlr2cb#FCKeditor2.6.6+FCKeditor.Net_2.6.3-New.zip

    不能下载请留言或QQ:122388766
    转载请标明出处:http://www.cnblogs.com/bicabo/archive/2010/06/25/1764960.html

    1.下载组件:(要下载FCKeditor2.6.5.zip和FCKeditor.NET2.6.3版的2个zip包)
    说明:
    FCKeditor2.6.3.zip是其最新的文件和图片什么的;
    FCKeditor.NET.zip是ASP.NET调用的DLL在里面。
    2.分别解压后把FCKeditor2.6.3.zip里的fckeditor目录整个复制到网站中。
    3.解压FCKeditor.NET.zip包后在FCKeditor.Net_2.2\bin\Debug目录里找到FredCK.FCKeditorV2.dll,将FredCK.FCKeditorV2.dll添加到工具箱上。
    4.完了之后将控件拖到网页上:
    5.现在已经完成了添加,现在要根据我们的需要来设置了……
    进入FCKeditor文件夹,编辑 fckconfig.js 文件。
    6.
    修改
    var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
    var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | php
    改为
    var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py
    var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | php
    7. 配置语言包。有英文、繁体中文等,这里我们使用简体中文。
    修改
    FCKConfig.DefaultLanguage = 'en' ;

    FCKConfig.DefaultLanguage = 'zh-cn' ;
    8.配置皮肤。有default、office2003、silver风格等,这里我们可以使用默认。
    FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ;
    9.在编辑器域内可以使用Tab键。(1为是,0为否)
    FCKConfig.TabSpaces = 0 ; 改为FCKConfig.TabSpaces = 1 ;
    10.加上几种我们常用的字体的方法
    修改
    FCKConfig.FontNames = 'Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;

    FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana'
    11.基本的属性设置已经差不多了,要设置更多请参考一下属性表:
    FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称    
    FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件    
    FCKConfig.EditorAreaStyles = '' ; // 编辑区的样式表风格    
    FCKConfig.ToolbarComboPreviewCSS =''; //工具栏预览CSS    
    FCKConfig.DocType = '' ;//文档类型    
    FCKConfig.BaseHref = ''; // 相对链接的基地址    
    FCKConfig.FullPage = false ; //是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容    
    FCKConfig.StartupShowBlocks = false ;//决定是否启用"显示模块"    
    FCKConfig.Debug = false ;//是否开启调试功能    
    FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/' ; //皮肤路径    
    FCKConfig.PreloadImages=... //预装入的图片    
    FCKConfigFCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; //插件路径    
    FCKConfig.AutoDetectLanguage = true ; //是否自动检测语言    
    FCKConfig.DefaultLanguage   = 'zh-cn' ; //默认语言    
    FCKConfig.ContentLangDirection = 'ltr' ; //默认的文字方向,可选"ltr/rtl",即从左到右或从右到左    
    FCKConfig.ProcessHTMLEntities = true ; //处理HTML实体    
    FCKConfig.IncludeLatinEntities = true ; //包括拉丁文    
    FCKConfig.IncludeGreekEntities = true ;//包括希腊文    
    FCKConfig.ProcessNumericEntities = false ;//处理数字实体    
    FCKConfig.AdditionalNumericEntities = '' ;   //附加的数字实体    
    FCKConfig.FillEmptyBlocks = true ; //是否填充空块    
    FCKConfig.FormatSource   = true ; //在切换到代码视图时是否自动格式化代码    
    FCKConfig.FormatOutput   = true ; //当输出内容时是否自动格式化代码    
    FCKConfig.FormatIndentator = '    ' ; //当在源码格式下缩进代码使用的字符    
    FCKConfig.StartupFocus = false ; //开启时焦点是否到编辑器,即打开页面时光标是否停留在fckeditor上    
    FCKConfig.ForcePasteAsPlainText = false ; //是否强制粘贴为纯文件内容    
    FCKConfig.AutoDetectPasteFromWord = true ; //是否自动探测从word粘贴文件,仅支持IE    
    FCKConfig.ShowDropDialog = true ;//是否显示下拉菜单    
    FCKConfig.ForceSimpleAmpersand = false ;//是否不把&符号转换为XML实体    
    FCKConfig.TabSpaces   = 0 ;//按下Tab键时光标跳格数,默认值为零为不跳格    
    FCKConfig.ShowBorders = true ;//合并边框    
    FCKConfig.SourcePopup = false ;//弹出    
    FCKConfig.ToolbarStartExpanded = true ;//启动fckeditor工具栏默认是否展开    
    FCKConfig.ToolbarCanCollapse = true ;//是否允许折叠或展开工具栏    
    FCKConfig.IgnoreEmptyParagraphValue = true ;//是否忽略空的段落值    
    FCKConfig.FloatingPanelsZIndex = 10000 ;//浮动面板索引    
    FCKConfig.HtmlEncodeOutput = false ;//是否将HTML编码输出    
    FCKConfig.TemplateReplaceAll = true ;//是否替换所有模板    
    FCKConfig.ToolbarLocation = 'In' ;//工具栏位置,    
    FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称    
    FCKConfigFCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件    
    FCKConfig.BaseHref = ''; // 相对链接的基地址    
    FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容    
    FCKConfigFCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤    
    FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言    
    FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言    
    FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右    
    FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代    
    FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码    
    FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码    
    FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符    
    FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记    
    FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器    
    FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本    
    FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体    
    FCKConfig.TabSpaces = 0/1; // TAB是否有效    
    FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数    
    FCKConfig.ShowBorders = true/false; // 是否合并边框    
    FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现    
    FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏    
    FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏    
    FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br    
    FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br    
    FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容    
    FCKConfig.FontColors = ""; // 文字颜色列表    
    FCKConfig.FontNames = ""; // 字体列表    
    FCKConfig.FontSizes = ""; // 字号列表    
    FCKConfig.FontFormats = ""; // 文字格式列表    
    FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置    
    FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置    
    FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器    
    FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址    
    FCKConfigFCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径    
    FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置    
    FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数    
    FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整    
    FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整    
    FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容    
      
      
    上传设置    
      
    var _FileBrowserLanguage         = 'php' ;         // asp | aspx | cfm | lasso | perl | php | py      
    var _QuickUploadLanguage         = 'php' ;         // asp | aspx | cfm | lasso | php[/code]    
    //第一个是文件浏览器使用的语言,第二个快速上传使用的语言,改成你需要的    
    FCKConfig.LinkUploadAllowedExtensions         = "" ;                         // empty for all    
    FCKConfig.LinkUploadDeniedExtensions =".(php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi)$"  
    //这是两个允许和拒绝上传的文件类型列表    
    FCKConfig.ImageBrowser = false ;是否在插入图片功能里面启用服务器文件浏览功能    
    FCKConfigFCKConfig.ImageBrowserURL = FCKConfig.BasePath + 'filemanager/browser/default/browser.html?Type=ImageConnector=connectors/' + _FileBrowserLanguage + '/connector.' + _FileBrowserExtension ;    
    Type=Image   表示文件类型是image这会使文件浏览器定位到文件上传路径/image/文件夹下面    
    FCKConfig.FlashBrowser = false ;是否在插入flash功能中启用服务器文件浏览功能    
    FCKConfig.LinkUpload = false ;是否启用插入链接的快速上传功能    
    FCKConfig.ImageUpload = false ;是否启用图片快速上传功能    
    FCKConfig.FlashUpload = false ;是否启用flash上传功能    
      
      
    服务器文件设置    
      
    文件浏览器的设置:    
    fckeditor\editor\filemanager\connectors\asp\config.asp    
      
    ConfigIsEnabled = true 决定是否启用文件浏览器。这个是在服务器上执行的    
    ConfigUserFilesPath = "/test/upload/" 上传文件的路径(相对的)    
    ConfigAllowedExtensions.Add         "File", ""    
    ConfigDeniedExtensions.Add         "File", "php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|com|dll|vbs|js|reg|cgi"    
    ConfigAllowedExtensions.Add         "Image", "jpg|gif|jpeg|png|bmp"    
    ConfigDeniedExtensions.Add         "Image", ""    
    ConfigAllowedExtensions.Add         "Flash", "swf|fla"    
    ConfigDeniedExtensions.Add         "Flash", ""    
    ConfigAllowedExtensions.Add         "Media", "swf|fla|jpg|gif|jpeg|png|avi|mpg|mpeg|mp(1-4)|wma|wmv|wav|mid|midi|rmi|rm|ram|rmvb|mov|qt"    
    ConfigDeniedExtensions.Add         "Media", ""    
    这是4个不同的filetype类型 分别对应了 前台编辑器的 插入链接 插入图片 插入flash 插入媒体 4个功能    

      
    12.、配置WebConfig,在<appSettings>节点添加,如下:
    <appSettings>
        <add key="FCKeditor:BasePath" value="/fckeditor/"/>
        <add key="FCKeditor:UserFilesPath" value="/你要存放图片的目录名称/" />
    </appSettings>
    BasePath是fckeditor所在路径,fckeditor由于我们直接放网站目录下这样写就可以,如果您的网站多放几层适当调整即可。UserFilesPath是所有上传的文件的所在目录。
    13.aspx页面:
    <%@ Page Language="C#"  AutoEventWireup="true"   CodeFile="Default.aspx.cs" Inherits="_Default" validateRequest="false" %>
    我们要添加一个参数 validateRequest=false,否则提交带html代码的内容会报错
    14.删除我们不需要的文件:
    进入FCKeditor文件夹,把所有“_”开头的文件和文件夹删掉,这些都是一些范例,只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml就可以了;
      进入editor文件夹,删掉“_source”文件夹,里面放的同样是源文件;
      退回上一级目录进入filemanager文件夹,有browser和upload两个文件夹。进入browser\default\connectors,只保留aspx文件夹,其余的删掉;mcpuk目录亦可删除;upload也一样,只保留aspx文件夹;
      退到editor再进入images文件夹,smiley里面放的是表情图标,有msn和fun两个系列,如果你想用自己的表情图标,可以把它们都删除;如果你想用这里的表情图标那就不要删了;
      lang里面放的是语言包,如果只是用简体中文,那么只保留fcklanguagemanager.js、zh-cn.js两个文件就行了,建议也保留en.js(英文)、zh.js(繁体中文)两个文件,fcklanguagemanager.js是语言配置文件,有了它才能和fckconfig.js里的设置成对,对应上相应的语言文件,一定要保留!
      再退出lang文件夹,进入skins文件夹,如果你想使用FCKeditor默认的奶黄色,那就把除了default文件夹外的另两个文件夹直接删除,如果想用别的,那就看你自己的喜好了。
    15。用法:FCKeditor1.Value 就是他的值了……

    16.aspx目录下的config.ascx文件的设置(FCKeditor在ASP。NET中上传图片设置)
    private bool CheckAuthentication()
    {
      // WARNING : DO NOT simply return "true". By doing so, you are allowing
      // "anyone" to upload and list the files in your server. You must implement
      // some kind of session validation here. Even something very simple as...
      //
      //  return ( Session[ "IsAuthorized" ] != null && (bool)Session[ "IsAuthorized" ] == true );
      //
      // ... where Session[ "IsAuthorized" ] is set to "true" as soon as the
      // user logs in your system.
      return true; //默认的是false
    }

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nileel/archive/2009/09/25/4593110.aspx 

  • 相关阅读:
    css 网格布局简单应用
    服务器常用状态码
    js 操作数组
    下拉框 tree 基于 EasyUi
    c# 导出Excel
    select 多选 (EasyUI)
    如何提高sql查询速度
    总结JS中string、math、array的常用的方法
    php 验证邮箱 php验证手机号码 ph验证身份证
    jquery+php ajax上传多图片即时显示
  • 原文地址:https://www.cnblogs.com/bicabo/p/1764960.html
Copyright © 2011-2022 走看看