为FckEditor添加自定义的用户上传目录功能!

 FckEditor的图片上传功能,经常要根据不同用户来设置文件夹,因此我将FckEditor的文件进行了修改,在控件的属性中,添加了一个 UserPath属性,放在BasePath属性的后面,以后使用编辑器控件的时候,只要设置一下UserPath就可以了。

修改代码如下:
---- 1、FCKeditor.cs --------
//设置一个私有变量,用以保存ImageBrowerUrl中的地址
private string sImageBrowserUrl = "/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.aspx?UserID=";

//在BsePath属性下面添加一个UserPath属性
[ DefaultValue( "" ) ]
public string UserPath
{
     get { 
                object o = ViewState["UserPath"]; 
                return (o == null ? "" : (string)o); 
    }

     set {
                ViewState["UserPath"] = value;
                this.ImageBrowserURL = (sImageBrowserUrl + (string)ViewState["UserPath"]);
     }
}


---- 2、FileBrowserConnector.cs -------
//添加初始化函数 OnInit
protected override void OnInit(EventArgs e)
 {
       if (Request.QueryString["UserID"] != null)
       {
            Session["FCKeditor:UserFilesPath"] = Request.QueryString["UserID"].ToString() ;
       }
}


---- 3、FileWorkerBase.cs ----------
//用户目录的私有字段
private string sUserName;

//在UserFilePath属性中添加如下一句话
public string UserFilesPath
{

      get
      {
                 // ... ... ... sUserFilesPath 的代码省略,不用动他 //

                //通过设置 Session[FCKeditor:UserFilesPath]实现不同用户目录
                if (Session["FCKeditor:UserFilesPath"] == null)
                {
                     sUserName = "AllUser";
                }
                else
                {
                     sUserName = (string)Session["FCKeditor:UserFilesPath"];
                }

                if(!sUserName.EndsWith("/"))
                { 
                        sUserName += "/"; 
                }
                
            return (sUserFilesPath + sUserName);

    
    }
}

---- 4、/FCKeditor/editor/filemanager/browser/default/js 文件夹--------
在这个文件夹中添加一个 ajax.js 文件


---- 5、/FCKeditor/editor/filemanager/browser/default/frmupload.html ----
<script type="text/javascript" src="js/ajax.js"></script>
<script language="javascript" type="text/javascript">

   ......

//添加删除图片的JS代码
function ajaxFileDelete()
{
       var oFrm = window.parent.frames["frmResourcesList"];
       var oHid = window.parent.frames["frmResourcesList"].document.getElementById("hidFileName");
       var strUrl=oHid.value;
   
       if(strUrl==""){
              alert("请选择想要删除的图片!");  
       }else{
              if(confirm("您确定要删除该文件吗?")){
                     AjaxEval("/FCKeditor/editor/filemanager/upload/aspx/ajaxDelete.aspx?path=" + escape(strUrl) + "&" + Math.random());  
              }else{
                     oHid.value = ""; 
                    oFrm.Refresh();
              } 
       }
}

</script>

//在HTML部分添加一个图片删除按钮
<input  id="btnDelete"  name="btnDelete"  type="button"  value="删除文件"  onClick="ajaxFileDelete();" />

---- 6、/FCKeditor/editor/filemanager/upload/aspx/AjaxDelete.aspx ------
  建立一个新文件 AjaxDelete.aspx,删掉自动生成的cs文件,修改aspx文件头为:
<%@ Page language="c#" AutoEventWireup="false" Inherits="FredCK.FCKeditorV2.AjaxDelete" %>

---- 7、在FCK.Net源代码中添加一个 AjaxDelete类 ----
namespace FredCK.FCKeditorV2
{

public class AjaxDelete : FileWorkerBase
{
       protected override void OnLoad(EventArgs e)
       {    
            if(Request.QueryString["path"]==null)
           {
                    Response.Clear() ;
                    Response.Write("alert('请选择要删除的文件'); window.parent.frames['frmResourcesList'].document.getElementById('hidFileName').value=''; window.parent.frames['frmResourcesList'].Refresh();");
                    Response.End();
           }
           else
           {
                    string filePath=Request.QueryString["path"].ToString();
    
                    filePath=Server.UrlDecode(filePath); //针对JS文件中的escape()进行解码
                    filePath=System.Web.HttpContext.Current.Server.MapPath(filePath); 
            
                    if(System.IO.File.Exists(filePath))System.IO.File.Delete(filePath);
    
                    Response.Clear() ;
                    Response.Write("window.parent.frames['frmResourcesList'].document.getElementById('hidFileName').value=''; window.parent.frames['frmResourcesList'].Refresh();"); 
                    Response.End();
           }

      }
}
}


------------补充---------
frmresourceslist.html 是图片列表页,修改添加图片的排列在这里进行。
frmupload.html 是图片上传/删除按钮的页面,功能设置在这里进行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值