这篇文章解救了我两天来的郁闷,感谢网路上的朋友,现在转载如下:
------------------------------------------------------
今天用到在线编辑器在asp环境下上传竟然无效。。。。找了好久才找到这介绍,现备份于此
FCKeditor 2.6.4 ASP环境安装配置使用说明
需要留下的有
根目录下:editor目录 、fckconfig.js、 fckeditor.asp fckeditor.js fckstyles.xml fcktemplates.xml 这几个保留,其余的全部去除;
子目录下:editor\filemanager\connectors目录中 把asp目录留下(上传用什么方法就留下什么),其余的方法目录[php、aspx 等待 目录] 删除(注意留下test.html 和 uploadtest.html)
editor\lang 语言目 把 en.js 、 zh.js 、 zh-cn.js 留下,其余全部删除
FCKeditor的官方网站去下载最新版本:
http://www.fckeditor.net/download
和其他脚本类的程序一样,FCKeditor的安装其实就是源代码的拷贝。我们按照官方的方法,在网站根目录下建立FCKeditor这样一个文件夹,然后把下载下来的文件包释放到该文件夹中。
安装好后,就是配置和使用了,我只对一般的使用(ASP环境)进行了配置,源文件的精简,复杂应用不去管它。配置时需要改动几个文件,我们按功能来分,不按文件来分,这样读者更容易明白。
1、默认语言
打开fckconfig.js文件(相对FCKeditor文件夹,以下同),把自动检测语言改为不检测,把默认语言改为简体中文:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
FCKConfig.AutoDetectLanguage = false ;
FCKConfig.DefaultLanguage = 'zh-cn' ;
FCKConfig.TabSpaces = 1 ; //在编辑器中是否可以是否TAB键 0 不可用 1 为可用
2、字体列表
打开fckconfig.js文件,在字体列表中添加常用的“宋体;黑体;隶书;楷体_GB2312”:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ;
编辑器域内默认的显示字体为12px,想要修改可以通过修改样式表来达到要求,打开/editor/css/fck_editorarea.css,把第4行改为 font-size: 14px;即可。
3、文件上传
FCKeditor的文件管理程序在filemanager文件夹中,又分为浏览(browser)和上传(upload)两种。浏览是指浏览服务器文件 并可以选择,也可以上传本地文件至服务器;上传是指快速上传(QuickUpload),在窗口中点“上传”选项卡打开就是,跟我们使用的UBB编辑器有 点相似,选择本地文件后上传就行。
也就是说FCKeditor中有一个文件浏览,有两个文件上传,而这些设置有些在一个文件中,有的则在多个文件中。比较复杂,改动比较多,我们再分几个小点儿来说。
①打开和关闭文件浏览和上传功能
有三个文件跟这个开关有关系,一个是js文件,两个是asp文件,前者关闭后界面中不出现相关窗口或按钮,后者关闭后相关功能不可用。
首先是fckconfig.js文件,以下内容设为true为开,false则为关。
文件浏览和浏览中上传功能:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;
文件快速上传功能:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
FCKConfig.LinkUpload = true ;
FCKConfig.ImageUpload = true ;
FCKConfig.FlashUpload = true ;
其次设置两个asp文件:
editor\filemanager\connectors\asp\config.asp
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
ConfigIsEnabled = False
表示文件浏览关闭
editor\filemanager\connectors\asp\config.asp
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
表示文件快速上传打开
②文件上传
上传的路径设置:
打开文件editor\filemanager\connectors\asp\config.asp:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
ConfigUserFilesPath = "/userfiles/"
我的文件目录在http://www.wedonet.com/userfiles/下面,就照以上设置。
如果在本地测试这个网站在虚拟目录test中,则应该设置为:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
现在测试一下,点击“上传至服务器”的按钮后没有任何反应。这就是因为fckconfig.js文件中把默认语言"php"改成"asp".
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
var _FileBrowserLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
var _QuickUploadLanguage = 'php' ; // asp | aspx | cfm | lasso | perl | php | py
④上传文件名自动更名
FCKeditor不支持中文文件名称,所以我们要让文件存入服务器时更改名称。由于有两个上传的地方,而且所用文件不同,所以两个文件应该同时改,我们 先来看看快速上传的文件,打开editor\filemanager\connectors\asp\upload.asp,在文件最后添加以下函数:
我是在FileUpload sResourceType, sCurrentFolder, sCommand下面加的这个函数~
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
Public Function GetNewFileName()
dim ranNum
dim dtNow
dtNow=Now()
randomize
ranNum=int(90*rnd)+10
GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function
我们用年月日时分秒和两位随机数字来作为文件名,这样既能够分辨出文件上传时间,也不容易重名。
然后仍然是这个文件editor\filemanager\editor\filemanager\connectors\asp\commands.asp,找到:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
' Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name
把它改为:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
' Get the uploaded file name.
sFileName = GetNewFileName() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)
最后一步:
在ASP源程序中引用FCKeditor编辑器
首先在asp页面顶端插入服务器端包含语句:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
然后在表单里面添加以下代码:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
Dim oFCKeditor' 定义变量
Set oFCKeditor = New FCKeditor' 类的初始化
oFCKeditor.BasePath = "/fckeditor/"' 定义路径(这是根路径:/FCKeditor/)
oFCKeditor.BasePath="FCKeditor/"' 定义工具条(默认为:Default)
oFCKeditor.ToolbarSet="Basic"' 定义宽度(默认宽度:100%)
oFCKeditor.Width="100%"' 定义高度(默认高度:200)
oFCKeditor.Height=350' 输入框的初始值
oFCKeditor.Value="这是示例文本。"
oFCKeditor.Create "FCKeditor1"
这样就在表单里面创建了一个隐藏的名称为content的输入框,可以和其他表单元素一样使用,例如用以下代码取得该输入框的值:
![程序代码](http://www.wedonet.com/userup/094/12224213734.gif)
Dim content
content= checkstr(request.Form("FCKeditor1"))
checkstr函数是自定义的一个函数,防止里面含有SQL非法字符,这个自定义的函数在文章里也有:http://www.wedonet.com/articleread.asp?u=3w272w3462t0
到此,你可以实现基本的功能了。当然Fckeditor功能非常强大,这就要自己慢慢研究吧。`
-----
注:以上的配置均在FCKeditor 2.6.4 下测试过。
另:修改FCKeditor 的上传部分代码,实现了上传后的文件以时间+随机数构成的 流水文件名。
具体方法如下:
找到 editor\filemanager\connectors\asp 目录 中的 commands.asp 和 Io.asp
1. 打开 commands.asp 找到 “sFileName = SanitizeFileName( sFileName )” 该行代码
在它的下部 添加 sFileName = GetID("Fl") & "." & Split(sFileName,".")(1) ' 生成20位上传文件流水编号名
2 . 打开IO.asp页面,找到 “function SanitizeFileName( sNewFileName )” 该行代码 , 它是个函数,在该函数结束的 end Function 代码下面 ,添加上 GetID 函数 ,该函数功能就是生成20位的流水号具体代码如下:
Function GetID(prefix)
dim YearStr , MonthStr , DayStr , HourStr , MinStr , SecStr , RndStr , NStr , i ,j , SupplyStr 'SupplyStr 为补位 防止出现位数少的情况 就自动补位
YearStr = year(date)
MonthStr = month(Date)
DayStr=day(Date)
HourStr = hour(time)
MinStr = minute(time)
SecStr = second(time)
if len(MonthStr)<2 then MonthStr="0" & MonthStr
if len(DayStr)<2 then DayStr="0" & DayStr
if len(HourStr)<2 then HourStr="0" & HourStr
if len(MinStr)<2 then MinStr="0" & MinStr
if len(SecStr)<2 then SecStr="0" & SecStr
Randomize
RndStr = Cstr(Fix(9000*rnd() +1000))
NStr = prefix&YearStr&MonthStr&DayStr&HourStr&MinStr&SecStr&RndStr
j = 20 - len(Nstr)
SupplyStr = ""
For i=1 to j
Randomize
SupplyStr = SupplyStr & fix(10*rnd())
Next
GetID = NStr & SupplyStr
end function