自动修改DOCMAN上传的文件名称

  • 本站文章除注明转载外,均为本站原创或者翻译。
  • 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商;
  • 本站部分原创和翻译文章提供markdown格式源码,欢迎使用文章源码进行转载;
  • 本博客采用 WPCMD 维护;
  • 本文标题:自动修改DOCMAN上传的文件名称
  • 本文链接:http://zengrong.net/post/197.htm


DOCMANMambo/Joomla!的插件,我认为它是最好的下载插件。此插件的效果可以看这里

但是,从我升级到Joomla1.0.8(DOCMAN版本1.3RC2)以来,如果上传的文件名包含中文,那么上传到服务器的文件就会变成乱码。但是,这个文件名在DOCMAN的管理界面中却显示正常。

这个问题的原因,是因为我使用了UTF-8编码,因此,我需要修改DOCMAN,让它自动更改我上传的文件名。

找到DOCMAN_file.class.php文件中的_upload函数定义(大约在381行),修改它为如下所示:

function _upload($name, $temp_name, $path)
{
if (is_uploaded_file($temp_name)) {
$name = time().stristr($name,".");
if (move_uploaded_file($temp_name, $path."/".$name)) {
$file = new DOCMAN_File($name, $path);
return $file;
} else {
$this->_err = _DML_DIRPROBLEM." ";
}
} else {
$this->_err = _DML_DIRPROBLEM2." ";
}
return false;
}

只是在原代码中加入了第4行。