php fck文件夹及上传图片中文乱码问题解决方法

主要原因是fck中的编(utf-8)码和本地的编码(gbk)环紧不一致导致的,修改如下5个文件可以解决。

解决中文文件夹乱码问题:

文件1\fckeditor\editor\filemanager\browser\default\browser.html

找到

oConnector.SendCommand = function( command, params, callBackFunction )

{

       var sUrl = this.ConnectorUrl + 'Command=' + command ;

       sUrl += '&Type=' + this.ResourceType ;

//     sUrl += '&CurrentFolder=' + encodeURIComponent( this.CurrentFolder ) ;

       sUrl += '&CurrentFolder=' +  this.CurrentFolder ; 

 

       if ( params ) sUrl += '&' + params ;

 

       // Add a random salt to avoid getting a cached version of the command execution

       sUrl += '&uuid=' + new Date().getTime() ;

 

       var oXML = new FCKXml() ;

 

       if ( callBackFunction )

              oXML.LoadUrl( sUrl, callBackFunction ) ;   // Asynchronous load.

       else

              return oXML.LoadUrl( sUrl ) ;

 

       return null ;

}

去掉encodeURIComponent函数。

 

文件2\fckeditor\editor\filemanager\browser\default\frmcreatefolder.html

找到

function CreateFolder()

{

       var sFolderName ;

 

       while ( true )

       {

              sFolderName = prompt( 'Type the name of the new folder:', '' ) ;

 

              if ( sFolderName == null )

                     return ;

              else if ( sFolderName.length == 0 )

                     alert( 'Please type the folder name' ) ;

              else

                     break ;

       }

 

//     oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + encodeURIComponent( sFolderName) , CreateFolderCallBack ) ;

       oConnector.SendCommand( 'CreateFolder', 'NewFolderName=' + sFolderName , CreateFolderCallBack ) ;

}

去掉encodeURIComponent函数。

 

文件3\fckeditor\editor\filemanager\browser\default\frmresourceslist.html

找到

function OpenFile( fileUrl )

{

//     window.top.opener.SetUrl( encodeURI( fileUrl ).replace( '#', '%23' ) ) ;

       window.top.opener.SetUrl( fileUrl ) ;

       window.top.close() ;

       window.top.opener.focus() ;

}

去掉encodeURI函数。

 

解决上传图片中文文件名乱码问题:

文件4\fckeditor\editor\filemanager\connectors\php\commands.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\fckeditor\editor\filemanager\connectors\php\util.php

找到

function ConvertToXmlAttribute( $value ){

       。。。

       找到

      //return ( utf8_encode( htmlspecialchars( $value ) ) ) ;

       return iconv("GBK", "UTF-8", htmlspecialchars( $value ));

}

对内容进行转码。

 

原来的本人博客中有提到相关问题:http://simpledev.iteye.com/blog/371619

(详见:附件直接覆盖文件)

整理 120521 15:06

 

猜你喜欢

转载自simpledev.iteye.com/blog/1536327