FckEditor的使用_2(asp.net)

控制FCKeditor上传图片显示尺寸:

FCKeditor上传的图片太小或者太大,用户自己不想重新调整大小,可以在代码控制大小,让宽度固定,高度随原先的比例缩小或放大

注:这种方法只能改变图片显示时的宽、高,图片文件大小没变
fckeditor/editor/dialog/fck_image/fck_image.js
找到
           GetE('txtWidth').value  = oImageOriginal.width ;

        GetE('txtHeight').value = oImageOriginal.height ;

改为
     if ( oImageOriginal.width <= 500 ) {

        GetE('txtWidth').value  = oImageOriginal.width ;

        GetE('txtHeight').value = oImageOriginal.height ;

    } else {

        GetE('txtWidth').value = 500 ;

        GetE('txtHeight').value = 500 * oImageOriginal.height / oImageOriginal.width ;
    }

-----------------------------------------------------------------------------------------

限制FCKeditor上传图片大小:

FCKeditor本身没有对上传文件的大小进行限制,上传大文件可能卡住,解决方法:

打开FileBrowser/FileWorkerBase.cs
找到
  if (oFile == null)
 

    {

        this.SendFileUploadResponse( 202, isQuickUpload );
            return;
      }

后面加:

   //控制上传文件大小

     if (oFile.ContentLength > 200 * 1024)

      {

           this.SendFileUploadResponse(800, isQuickUpload);

           return;

  }
重新编译生成DLL

然后打开fckeditor/editor/dialog/fck_image/fck_image.js

找到
  function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )

switch (errorNumber)语句中加入:
  case 800 :
         alert( '图片大小超过上限值,请处理后再上传!' ) ;
        break ; 

-----------------------------------------------------------------------------------------

FCKeditor自定义上传路径:

一个文件夹下面不能存放过多的文件,否则对该目录的访问会严重影响I/O性能。

在项目中想让不同用户用FCK上传的图片放在以用户名ID的文件夹下:

connector.aspx中加入以下代码就可以了。

    /// <summary>
    /// 自定义上传路径

    /// </summary>

    /// <param name="e"></param>

    protected override void OnInit(EventArgs e)

    {
       
if (Session["cUser"] == null)

        {

            Session["FCKeditor:UserFilesPath"] = "~/User/images/";

        }

        else

        {

            int userId = (Session["cUser"] as UserInfo).UID;

            //为不同用户创建不同目录。

            Session["FCKeditor:UserFilesPath"] = "~/User/images/" + userId + "/";

            string strPath = Server.MapPath("~/User/images/");

            if (strPath[strPath.Length - 1] != '//')

            {
                strPath +=
"//";

            }
           
if (!System.IO.Directory.Exists(strPath + userId))

            {

                System.IO.Directory.CreateDirectory(strPath + userId);

            }

        }

}
-----------------------------------------------------------------------------------------
自定义文件上传的文件名:
打开FileBrowser/FileWorkerBase.cs
找到
  string sExtension = System.IO.Path.GetExtension( oFile.FileName );
    sExtension = sExtension.TrimStart('.');//54

  后面加

     sFileName = DateTime.Now.ToString("yyyyMdhhmsfff") + new Random().Next(100);
   
sFileName += "." + sExtension.ToLower();

重新编译生成DLL
-----------------------------------------------------------------------------------------
解决上传文件没有权限:
上传图片后页面一直处于进度条状态,并出现脚本错误提示“没有权限”,但实际上图片已经上传成功
同样打开FileBrowser/FileWorkerBase.cs
找到
     Response.Write(@"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e){};d=d.replace(/.*?(?:/.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})();" );
为:
     Response.Write(@"(function(){var d=document.domain;while (true){try{var A=window.top.opener.document.domain;break;}catch(e){};d=d.replace(/.*?(?:/.|$)/,'');if (d.length==0) break;}})();" );
即删除 try{document.domain=d;}catch (e){break;} 这句,重新编译生成DLL

如果使用asp.net 2.0theme,则需要
/editor/filemanager/upload/aspx/upload.aspx
/editor/filemanager/browser/default/connectors/aspx/connector.aspx
两个页面的@Page指令中加入属性Theme=""

你可能感兴趣的:(function,String,session,fckeditor,asp.net,dll)