fckeditor 实现不同用户上传图片到各自文件夹下的配置
自己在做这个功能的时候花了一个多星期的时间,网上查了好多资料,就是没有完整的步骤,最后终于自己实现了,虽然稍有残缺不完美,但是能用。
1.在使用fckeditor的页面的后台添加属性:
string sImageBrowserURL = "/xiaoqing/fckeditor/editor/filemanager/browser/default/browser.html?
Type=Image&Connector=../../connectors/aspx/connector.aspx&UserID=";
2.给页面的fckeditor添加OnInit="fckContent_Init"事件
事件内容:
protected void fckContent_Init(object sender, EventArgs e)
{
id = Request.QueryString["id"];
if (Session["currentUser"] != null)
{
userModel = Session["currentUser"] as Maticsoft.Model.users;
sImageBrowserURL += userModel.usid.ToString();
}
else
{
Response.Write("<script>alert('当前登陆用户已失效,请重新登录');location='../index.aspx'</script>");
}
fckContent.ImageBrowserURL = sImageBrowserURL;
}
3.在/Website(你的网站)/fckeditor/editor/filemanager/connectors/aspx/connector.aspx中添加
<script runat="server" language="C#">
protected override void OnInit(EventArgs e)
{
if (Request.QueryString["UserID"] == null)
{
Session["FCKeditor:UserFilesPath"] = "~/userfiles/"; //设置默认值
}
else
{
Session["FCKeditor:UserFilesPath"] = "~/users/images/" + Request.QueryString["UserID"] + "/";
}
}
</script>
4.修改/Website(你的网站)/fckeditor/editor/filemanager/browser/default/browser.html里大约在63行的一个方法
oConnector.SendCommand = function( command, params, callBackFunction )
{
var sUrl = this.ConnectorUrl + 'Command=' + command ;
sUrl += '&Type=' + this.ResourceType ;
sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;
if ( params ) sUrl += '&' + params ;
// Add a random salt to avoid getting a cached version of the command execution
sUrl += '&uuid=' + new Date().getTime() ;
//lhy修改begin
var UserId=GetUrlParam('UserID') ;
if(UserId.length>0)
sUrl += '&UserID='+UserId;
//lhy修改end
var oXML = new FCKXml() ;
if ( callBackFunction )
oXML.LoadUrl( sUrl, callBackFunction ) ; // Asynchronous load.
else
return oXML.LoadUrl( sUrl ) ;
return null ;
}
方法中
//lhy修改begin
var UserId=GetUrlParam('UserID') ;
if(UserId.length>0)
sUrl += '&UserID='+UserId;
//lhy修改end
是添加的内容
5.去掉‘插入图片’中‘图像属性’的 链接和高级,留下图像和上传
具体修改:/Website(你的网站)/fckeditor/editor/dialog/fck_image/fck_image.js
注释:
//#### Dialog Tabs
// Set the dialog tabs.
dialog.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;
注释//if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
//dialog.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;
if ( FCKConfig.ImageUpload )
dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
注释//if ( !FCKConfig.ImageDlgHideAdvanced )
//dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
// Function called when a dialog tag is selected.
6.去掉图像里的“浏览服务器”按钮。
/Website(你的网站)/fckeditor/editor/dialog/fck_image.html
大约在49行左右,
注释
<!--
<input id="btnBrowse" onclick="BrowseServer();"
type="button" value="Browse Server" fcklang="DlgBtnBrowseServer" />
-->