修改CKFinder.NET实现文件上传重命名

CKFinder.NET 2.2.1文件上传到服务器使用的是本地文件名,但在实际使用时我们希望文件能重命名保存到服务器,好在CKFinder.NET是开源的,要实现这一点并不复杂。

修改CKFinder.NET实现文件上传重命名

①.在vs打开_source文件夹中的项目,打开Settings/ConfigFile.cs,增加一个公有字段AutoRename,并赋值为false:
public bool AutoRename;

public ConfigFile()
{
    AutoRename = false;//默认不开启重命名
}

②.打开Connector/Config.cs,增加一个属性AutoRename:
public bool AutoRename
{
    get { return Settings.ConfigFile.Current.AutoRename; }
}

③.打开Connector/CommandHandlers/FileUploadCommandHandler.cs,在SendResponse方法增加如下代码(红色新增):
string sExtension = System.IO.Path.GetExtension( oFile.FileName );
sExtension = sExtension.TrimStart( '.' );

if ( !this.CurrentFolder.ResourceTypeInfo.CheckExtension( sExtension ) )
    ConnectorException.Throw( Errors.InvalidExtension );

if ( Config.Current.CheckIsNonHtmlExtension( sExtension ) && !this.CheckNonHtmlFile( oFile ) )
    ConnectorException.Throw( Errors.UploadedWrongHtmlFile );

if (Config.Current.AutoRename)
    sFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + sExtension;

④.重新生成CKFinder.NET并在网站中引用CKFinder.dll;

⑤.修改CKFinder/config.ascx,在SetConfig方法中对AutoRename赋值为true,即可实现文件上传重命名:
AutoRename = true;


评论: 0 | 引用: 0 | 查看次数: 4734
发表评论
登录后再发表评论!