再谈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 

posted on 2010-06-25 10:40  bicabo  阅读(708)  评论(0编辑  收藏  举报

导航