在网站建设中,Dedecms(织梦CMS)是一款非常流行的开源内容管理系统。然而,使用过Dedecms的人都知道,上传的文件会被系统自动重命名。虽然这种功能在大多数CMS程序中都很常见,但改名后的文件名可能会失去原始的直观性,特别是当这些文件需要供用户下载时(如报表、软件等)。用户下载后看到的是一串无意义的数字文件名,这显然不够友好。因此,有时我们需要让下载的模板或软件保持原始的中文文件名。
实现这一需求其实非常简单,只需要修改两行代码即可完成。接下来,我们将详细介绍如何操作。
***个步骤是修改发布内容时,通过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;
修改完成后,上传的文件将保留其原始名称,而不会再被系统自动重命名。这对于需要提供下载服务的网站来说,可以显著提升用户体验。
总结一下,通过简单的代码修改,我们解决了Dedecms上传文件自动重命名的问题。这种方法不仅适用于中文文件名,也适用于其他语言的文件名,确保了文件名的直观性和可用性。希望这篇文章能对正在使用Dedecms的朋友有所帮助。