在使用Dedecms的过程中,很多人都会遇到这样一个问题:上传的文件会被系统自动重命名。虽然大多数内容管理系统(CMS)都有类似的功能,但这种机制有时会带来不便。例如,当用户下载文件时,看到的却是一串没有实际意义的数字作为文件名,这显然不够直观,尤其是对于需要下载报表或软件等文件的用户来说。

为了改善这一问题,我们可以对Dedecms进行简单的修改,从而保持上传文件的原始名称,包括中文名。这种方法不仅简单易行,而且只需要修改两个文件中的几行代码即可实现。

 

首先,我们需要解决通过CKEditor附件功能上传文件时的自动重命名问题:

打开主目录下的/include/dialog/select_soft_post.php文件,在if(!empty($newname))之前的位置(大约第49行),加入以下代码:

$newname = $uploadfile_name;

 

接下来,我们还需要调整附件管理中上传新文件后的重命名机制:

打开主目录下管理目录的/dede/media_add.php文件,在大约第61行的位置,加入以下代码:

$filename = $upfile_name;

同时,注释掉下面的四行代码:

// $filename = "{$adminid}_".MyDate("His",$uptime).mt_rand(100,999).$i;
// $fs = explode(".",${"upfile".$i."_name"});
// $filename = $filename.".".$fs[count($fs)-1];
// $filename = $savePath."/".$filename;

 

通过以上两步操作,您可以成功保留上传文件的原始名称,无论是英文还是中文,都能正常显示。这对于用户体验的提升具有重要意义,特别是在提供下载服务的网站中。

需要注意的是,在进行任何代码修改之前,请务必备份相关文件,以防止意外情况的发生。此外,如果您不熟悉PHP代码的修改,建议寻求专业人士的帮助,以免对系统造成不必要的损害。

 

总结来说,通过简单的代码调整,我们可以轻松解决Dedecms文件上传后自动重命名的问题,让您的网站更加人性化,为用户提供更好的体验。