FCKeditor V2.x上传文件自动重命名
【IT168 技术文档】
FCKeditor 的文件上传默认是不改名的,本地的文件名是什么,上传后保留原来的文件名;如果存在同名文件,则会被自动在文件名后面加 (n) 来标识。但是如果原文件名中包含有空格或标点,则有可能会出现能上传但不能引用的情况。我们可以通过修改,让 FCKeditor 自动生成不重复且不含非法字符的文件名,思路是根据精确到秒的上传时间来命名,然后存放在服务器上。
For ASP.NET 的修改相对其他语言较麻烦一些,上传部分都编译到 DLL 文件里面了,只能通过修改源代码,再重新编译后方能使用。上传其实分2部分,一是“快速上传”,即在网页对话框中点“上传”标签后出来的界面,通过这里上传的文件都会存放在 UserFiles 根目录,如下图:

还有一个上传在点击“浏览服务器”后出来的界面中,我称之为“选择性上传”,这部分上传的文件则会根据用户选择的不同资源存放在相应的目录,或是 Image 或是 Flash、File等等。
用 VS.NET 打开 FredCK.FCKeditorV2.csproj,打开 Uploader.cs 文件,通过文件开头的注释:This is the code behind of the uploader.aspx page used for Quick Uploads.可以得知该文件是控制“快速上传”的,找到以下代码:
int iCounter = 0 ;
while ( true )
......{
string sFilePath = System.IO.Path.Combine( this.UserFilesDirectory, sFileName ) ;
![]()
if ( System.IO.File.Exists( sFilePath ) )
......{
iCounter++ ;
sFileName =
System.IO.Path.GetFileNameWithoutExtension( oFile.FileName ) +
"(" + iCounter + ")" +
System.IO.Path.GetExtension( oFile.FileName ) ;
![]()
iErrorNumber = 201 ;
}
else
......{
oFile.SaveAs( sFilePath ) ;
![]()
sFileUrl = this.UserFilesPath + sFileName ;
break ;
}
}
0
相关文章