使用fck的朋友可能會碰這樣一個情況就是如果上你的文件名為英文字母是沒有任何問題,如果上傳的是中文漢字就會出現中文名亂碼了,下面我來給大家分析與介紹解決方法。
主要原因是fck中的編(utf-8)碼和本地的編碼(gbk)環緊不一致導致的,修改如下5個文件可以解決
更改FileUpLoad函數 ckeditor/" target="_blank">fckeditoreditorfilemanagerconnectorsphpcommands.php
在文件中找到以下代碼:
代碼如下 復制代碼// Get the extension.
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;
$sExtension = strtolower( $sExtension ) ;
在其後加上一句:
代碼如下 復制代碼$sFileName = strtotime('now').'.'.$sExtension;
這樣文件名就是 當前時間戳+後綴名了。既解決了中文亂碼,也解決了文件重名
另一種解決辦法,保留中文名
文件4:fckeditoreditorfilemanagerconnectorsphpcommands.php
找到
代碼如下 復制代碼function FileUpload( $resourceType, $currentFolder, $sCommand ){
。。。
找到
//move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
move_uploaded_file( $oFile['tmp_name'], iconv("utf-8","gbk",$sFilePath));
}
對文件名$sFilePath轉碼。
文件5:fckeditoreditorfilemanagerconnectorsphputil.php
找到
代碼如下 復制代碼function ConvertToXmlAttribute( $value ){
。。。
找到
//return ( utf8_encode( htmlspecialchars( $value ) ) ) ;
return iconv("GBK", "UTF-8", htmlspecialchars( $value ));
}
對內容進行轉碼。