现在和大家一起分享一下!
下载解压后,内部文件如图所示:
里面有FCKEditor编辑器程序包,在FCKEditor最新版本:FCKEditor 2.5版中提供了官方范例,在上图所示的_Samples,大家可以看看。
下面我们进入正题:
1. 程序瘦身
下载下来的FCKEditor2.5中,很多文件我们不需要放到我们的程序中
根据上面的图片显示的目录:我们需要留下的有
根目录下: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 留下,其余全部删除
2. FckEditor2.5基本设置和ASP上传配置
FCKEditor2.5默认上传功能不可用 , 会报出以下错误:
1.fckconfig.js 中修改
FCKConfig.DefaultLanguage = 'zh-cn' ; //原来是en
FCKConfig.TabSpaces = 1 ; //在编辑器中是否可以是否TAB键 0 不可用 1 为可用
var _FileBrowserLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py 需要什么改成什么
var _QuickUploadLanguage = 'asp' ; // asp | aspx | cfm | lasso | perl | php | py
2. fckeditor.asp 中修改
sBasePath = "/fckeditor/" '表示 当前这个文件 fckeditor.asp相对于站点根目录的路径,看看我的目录排放
“天润CMS系统”是我的站点根目录,在根目录下有个 FCKeditor 目录,在这个里面有 editor 目录 和其他文件
所以我的 sBasePath = "/fckeditor/" ,大家根据自己目录存放来设置这个参数
3 . FCKeditor/editor/filemanager/connectors/asp/config.asp 中修改
ConfigIsEnabled = true '启用上传功能 把 false 改成 true
ConfigUserFilesPath = "/upFile/" '设置你的上传目录 这里 "/upFile/" 表示站点根目录下的 upFile目录 ,这个目录是需要自己创建的,大家可以看到上图目录结构中我创建了 upFile 目录 ,这样上传的文件将会存放到这个目录中。FckEditor会根据您上传的类别自动在upFIle目录中创建如 image 、 flash 等目录。
在我们前面的文章中,讲解了FCKeditor 2.5版基本使用配置及上传功能配置
通过上面的方法我们配置好了后,我们测试上传功能,上传英文名字的文件没有问题,但上传中文名字的文件后系统自动命
名该文件,但文件中出现了很多其它字符,可能是中文名字转换的问题,所以在这里我修改了FCKeditor 2.5 的上传部分代码,实现了上传后的文件以时间+随机数构成的 流水文件名。
具体方法如下:
找到 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
一切改好后,可以试一下效果