在使用Dedecms的过程中,您可能会发现上传的文件会被系统自动重命名。这种机制虽然有助于避免文件名冲突,但在某些情况下却显得不够友好。例如,当您希望用户下载的文件能够保留原始文件名时,自动生成的一串数字显然无法满足需求。因此,我们可以通过简单的代码修改来解决这一问题。
接下来,我们将介绍如何通过两行代码实现Dedecms上传文件保持原始文件名的功能。这将帮助您提升用户体验,尤其是在需要提供下载模板或软件的情况下。
第一步:修改内容发布时的文件重命名机制
为了确保通过CKEditor附件功能上传的文件能够保留原始文件名,我们需要对以下文件进行编辑:
打开主目录下的/include/dialog/select_soft_post.php文件,在if(!empty($newname))之前(大约49行的位置),添加以下代码:
$newname = $uploadfile_name;
这一步的作用是直接将上传文件的原始名称赋值给$newname变量,从而避免系统生成新的随机文件名。
第二步:调整附件管理中的文件重命名逻辑
接下来,我们需要修改附件管理中上传新文件后的重命名机制。具体操作如下:
打开管理目录下的/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上传的文件保留原始文件名。这对于提供下载服务的网站尤为重要,因为它可以让用户更直观地了解所下载文件的内容,从而提升用户体验。
需要注意的是,在进行任何代码修改之前,请务必备份相关文件,以防止意外情况发生。此外,如果您不熟悉代码修改,建议寻求专业人士的帮助,以确保网站的安全性和稳定性。
希望这篇文章能对您有所帮助!如果您还有其他疑问,请随时留言交流。