joomla jce editor 解决上传中文名文件失败问题

yipeiwu_com5年前PHP代码库
不论是JCE还是CKEDITOR,都没解决中文名文件的问题,要么上传失败,要么传上去了中文名不能被web访问。相比之下,JCE更加人性化,比如文件上传后默认被选中,不需用户在那么小的弹出窗口去上下翻搜寻刚刚上传的文件。研究了下JCE的源码,改掉保存文件名的方式,使用纯数字来作为文件名。

到joomla安装的目录,找到components/com_jce/editor/extensions/browser/file.php,修改 1017 - 1020 行:
复制代码 代码如下:

// strip extension
$name = WFUtility::stripExtension($name);
// make file name 'web safe'
$name = WFUtility::makeSafe($name, $this->get('websafe_mode', 'utf-8'));

改成
复制代码 代码如下:

$name = date('Ymd-His-', time()).rand(999);

我的joomla版本是1.5, JCE版本 2.1.3,不同版本修改的位置可能稍有差别。

相关文章

php面向对象的方法重载两种版本比较

多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。 PHP4 中仅仅实现了面向对象的部分的、简单的功...

PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法

ISSET();——适合于检测是否存在这个参数。 定义和作用范围:用于测试一个变量是否具有值(包括0,FALSE,或者一个空字串,但不能是NULL),即:“http://localhos...

PHP echo,print,printf,sprintf函数之间的区别与用法详解

1. echo函数: 输出函数,是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"<b>b...

解决file_get_contents无法请求https连接的方法

错误: Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to...

PHP中simplexml_load_string函数使用说明

先用一段代码重现一下问题 乍一看,结果很让人费解: 复制代码 代码如下: <?php $string = <<<EOF <data> <foo&...