FCKeditor 的檔案上傳預設是不改名的,本地的檔案名稱是什麼,上傳後保留原來的檔案名稱;如果存在同名檔案,則會被自動在檔案名稱後面加 (n) 來標識。
FCKeditor For ASP.NET 的上傳部分被編譯到 DLL 檔案裡面了,所以只能通過修改原始碼,再重新編譯後方能使用。
使用:FCKeditor.Net_2.5.zip,asp.net 2.0版
找到項目中的FileBrowser/FileWorkerBase.cs
while (true)
...{
string sFilePath = System.IO.Path.Combine(sServerDir, sFileName);
if (System.IO.File.Exists(sFilePath))
...{
iCounter++;
sFileName = System.IO.Path.GetFileNameWithoutExtension(oFile.FileName) + "(" + iCounter + ")." + sExtension;
iErrorNumber = 201;
}
else
...{
oFile.SaveAs(sFilePath);
break;
}
}
修改後的代碼變成:
while (true)
...{
sFileName = DateTime.Now.ToString("yyyymmddhhmmss", System.Globalization.DateTimeFormatInfo.InvariantInfo) + "." + sExtension;//以時間命名檔案
string sFilePath = System.IO.Path.Combine(sServerDir, sFileName);
oFile.SaveAs(sFilePath);
break;
}
詳見:
while ( true )
{
//string sFilePath = System.IO.Path.Combine( sServerDir, sFileName );
//if ( System.IO.File.Exists( sFilePath ) )
//{
// iCounter++;
// sFileName =
// System.IO.Path.GetFileNameWithoutExtension( oFile.FileName ) +
// "(" + iCounter + ")." +
// sExtension;
// iErrorNumber = 201;
//}
//else
//{
// oFile.SaveAs( sFilePath );
// break;
//}
sFileName = DateTime.Now.ToString("yyyyMMddhhmmssffff", System.Globalization.DateTimeFormatInfo.InvariantInfo) + "." + sExtension;//以時間命名檔案
string sFilePath = System.IO.Path.Combine(sServerDir, sFileName);
oFile.SaveAs(sFilePath);
break;
}
重建解決方案。在網站項目中刪除舊的FredCK.FCKeditorV2.dll,再添加新的引用,就OK了。