注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

杨伟的博客

程序人生

 
 
 

日志

 
 

为 FCKeditor 增加删除文件和文件夹的功能(C#)  

2009-06-14 14:56:00|  分类: IT界 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

注:最早写在 msn space 上的,后来搬家到了百度,格式就全都丢了,什么换行和颜色都没了。这次搬家到 163,凑合稍微改了一下,但是我仍然没仔细调整,毕竟这个东西现在已经没人用了吧。


FCKeditor 很强大也很讨人喜欢,唯一的缺点就是不支持文件和文件夹的删除,很是遗憾。这篇文章就介绍怎样为 FCKeditor 增加删除功能(基于 C# 的版本)。

FCKeditor 官方网站:http://www.fckeditor.net
本文所针对版本:FCKeditor: 2.6.4,FCKeditor.Net: 2.6.3。

1. 用 Visual Studio 2005/2008 打开项目 FCKeditor.Net 2.6.3,打开文件“FileBrowser/Connector.cs”,为 class Connector 增加如下两个成员函数:

private void DelFile( XmlNode connectorNode, string resourceType, string currentFolder )
{
 HttpContext hc = HttpContext.Current;
 string file = hc.Server.MapPath(hc.Request["FileUrl"]);
 if
 (System.IO.File.Exists(file)) System.IO.File.Delete(file);
 else
 hc.Response.Write(@"<error number=""1"" originaldescription=""unable to locate file"">");
}
private void DelFolder( XmlNode connectorNode, string resourceType, string currentFolder )
{
 HttpContext hc = HttpContext.Current;
 string folder = hc.Server.MapPath(hc.Request["FolderName"]);
 if (System.IO.Directory.Exists(folder))
 System.IO.Directory.Delete(folder, true);
 else
 hc.Response.Write(@"<error number=""2"" originaldescription=""unable to locate folder"">");
}

2. 在文件“Connector.cs”中找到 OnLoad 函数,在 switch 部分增加以下红色代码:

// Execute the required command.
switch( sCommand )
{
 case "GetFolders" :
 this.GetFolders( oConnectorNode, sResourceType, sCurrentFolder );
 break;
 case "GetFoldersAndFiles" :
 this.GetFolders( oConnectorNode, sResourceType, sCurrentFolder );
 this.GetFiles( oConnectorNode, sResourceType, sCurrentFolder );
 break;
 case "CreateFolder":
 this.CreateFolder(oConnectorNode, sResourceType, sCurrentFolder);
 break;
 case "DelFile":
 this.DelFile(oConnectorNode, sResourceType, sCurrentFolder);
 break;
 case "DelFolder":
 this.DelFolder(oConnectorNode, sResourceType, sCurrentFolder);
 break;
}

3. 编译 FCKeditor.net 并关闭该项目。将生成的 FredCK.FCKeditorV2.dll 拷贝出来以备后用。

4. 建立 C# 测试项目,并在其中部署 FCKeditor 2.6.4(使用第 3 步生成的 FredCK.FCKeditorV2.dll)。精简及部署的详细步骤非本文重点,不再重复。

5. 打开“fckeditor/editor/filemanager/browser/default/frmresourceslist.htm”,修改以下两个函数

oListManager.GetFolderRowHtml = function( folderName, folderPath, folderUrl ){
 // Build the link to view the folder.
 var sLink = '<a href="#" onclick="OpenFolder(\'' + ProtectPath(folderPath) + '\');return false;">'; return '<tr>' + '<td width="16">' + sLink + '<img alt="" src="images/Folder.gif" width="16" height="16" border="0"><\/a>' + '<\/td><td nowrap colspan="2"> ' + sLink + folderName + '<\/a>' + '<\/td><td align="right"><a href="#" onclick="DelFolder(\''+folderName+'\',\''+ ProtectPath(folderUrl) + '\');return false;">删除</a></td><\/tr>';}
oListManager.GetFileRowHtml = function( fileName, fileUrl, fileSize ){
 // Build the link to view the folder.
 var sLink = '<a href="#" onclick="OpenFile(\'' + ProtectPath(fileUrl) + '\');return false;">' ;
 // Get the file icon.
 var sIcon = oIcons.GetIcon( fileName ) ;
 return '<tr>' + '<td width="16">' + sLink + '<img alt="" src="images/icons/' + sIcon + '.gif" width="16" height="16" border="0"><\/a>' + '<\/td><td> ' + sLink + fileName + '<\/a>' + '<\/td><td align="right" nowrap> ' + fileSize + ' KB' + '<\/td><td align="right"><a href="#" onclick="DelFile(\''+fileName+'\',\'' + ProtectPath(fileUrl) + '\');return false;">删除</a></td><\/tr>';}

6. 继续修改文件“frmresourceslist.htm”,在 OpenFile 函数后面增加以下两个函数:

function DelFile( fileName, fileUrl ){ if (confirm('您确定要删除文件“' + fileName + '”吗?')) oConnector.SendCommand("DelFile", "FileUrl=" + escape(fileUrl), Refresh);}function DelFolder( folderName, folderPath ){ if (confirm('您确定要删除文件夹“' + folderName + '”和里面的所有文件吗?')) oConnector.SendCommand("DelFolder", "FolderName=" + escape(folderPath + folderName), Refresh);}

7. 继续修改文件“frmresourceslist.htm”,找到 GetFoldersAndFilesCallBack 函数中的下面这行,增加红色部分的代码:

oHtml.Append( oListManager.GetFolderRowHtml( sFolderName, sCurrentFolderPath + sFolderName + "/", sCurrentFolderUrl ) );

至此,删除功能增加完毕,见下图:

为 FCKeditor 增加删除文件和文件夹的功能(C) - yw80 - 杨伟的博客

 

  评论这张
 
阅读(12)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017