• .NET下fckeditor动态设置文件上传路径,解决多用户多路径的问题。


    首先看一下FCKeditor是如何获取用户的文件夹路径设置的,以及获取的顺序:

    FCKeditor.net获取上传路径文件是:FileWorkerBase.cs,打开找到以下部分view plaincopy to clipboardprint?
    protected string UserFilesPath
    {
    get
    {
    if ( sUserFilesPath == null )
    {
    // 第一回从application["FCKeditor:UserFilesPath"] 中读取,如果没有尝试其它方式
    sUserFilesPath = (string)Application["FCKeditor:UserFilesPath"] ;

    // 第二回从session["FCKeditor:UserFilesPath"] 中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = (string)Session["FCKeditor:UserFilesPath"] ;

    // 第三回从web.config中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = System.Configuration.ConfigurationSettings.AppSettings["FCKeditor:UserFilesPath"] ;

    // 第四回从DEFAULT_USER_FILES_PATH(这个变量在同文件中)中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    sUserFilesPath = DEFAULT_USER_FILES_PATH ;
    // 第五回从网址参数ServerPath中读取
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = Request.QueryString["ServerPath"] ;
    }

    }
    }

    // Check that the user path ends with slash ("/")
    if ( ! sUserFilesPath.EndsWith("/") )
    sUserFilesPath += "/" ;
    }
    return sUserFilesPath ;
    }
    }

    protected string UserFilesPath
    {
    get
    {
    if ( sUserFilesPath == null )
    {
    // 第一回从Application["FCKeditor:UserFilesPath"] 中读取,如果没有尝试其它方式
    sUserFilesPath = (string)Application["FCKeditor:UserFilesPath"] ;

    // 第二回从Session["FCKeditor:UserFilesPath"] 中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = (string)Session["FCKeditor:UserFilesPath"] ;

    // 第三回从web.config中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = System.Configuration.ConfigurationSettings.AppSettings["FCKeditor:UserFilesPath"] ;

    // 第四回从DEFAULT_USER_FILES_PATH(这个变量在同文件中)中读取,如果没有尝试其它方式
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    sUserFilesPath = DEFAULT_USER_FILES_PATH ;

    // 第五回从网址参数ServerPath中读取
    if ( sUserFilesPath == null || sUserFilesPath.Length == 0 )
    {
    sUserFilesPath = Request.QueryString["ServerPath"] ;
    }

    }
    }

    // Check that the user path ends with slash ("/")
    if ( ! sUserFilesPath.EndsWith("/") )
    sUserFilesPath += "/" ;
    }
    return sUserFilesPath ;
    }
    }

    所以我们只要在Session中指定了路径就可以实现动态路径或多用户多路径了,下面看我的代码:

    protected void Page_Load(object sender, EventArgs e)
    {
    Session["UserID"] = "12345679";
    string URL = Session["UserID"].ToString();
    Session["FCKeditor:UserFilesPath"]="~/factory/" + URL + "/UpLoadFile/";
    }

    在页面载入时设置用户的Session["UserID"],为不同用户指定一个ID,然后设置一下文件要上传了路径,动态的路径Session["FCKeditor:UserFilesPath"]是用Session["UserID"]结合我们的网站目录生成的一个路径。当然也可以直接在Session指定一个路径,然后赋值给Session["FCKeditor:UserFilesPath"]。

    至此,我们简单的解决了fckeditor动态设置文件上传路径,解决多用户多路径的问题。

  • 相关阅读:
    2.3、css颜色表示法
    2.2、css文本设置
    2.1、css基本语法及页面引用
    1.10、html内嵌框架
    1.9、html表单
    1.8、html表格
    1.7、html列表
    1.6、html链接
    1.5、html图像、绝对路径和相对路径
    1.4、html块、含样式的标签
  • 原文地址:https://www.cnblogs.com/superfeeling/p/2214400.html
Copyright © 2020-2023  润新知