欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP中FCK上传图片文件名乱码

程序员文章站 2022-05-16 20:03:03
...
使用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 ));

}

对内容进行转码。