在网站开发和文件管理中,有时我们需要对上传的文件名进行特定的修改,以确保文件名具有唯一性或符合特定规则。本文将详细介绍如何通过修改 PHP 文件实现这一目标,同时优化 SEO 效果。

假设我们有一个文件名为“测试下载.rar”,当用户上传该文件时,系统会自动将其重命名为类似“测试下载_9df430c26057400fca4a07bec9db3b62.rar”的格式。这种命名方式可以避免文件名冲突,同时也便于后续管理。

接下来,我们将介绍如何通过修改代码实现上述功能。


首先,打开以下文件:

/e/class/connect.php

找到以下代码段:

$r[filetype]=GetFiletype($file_name);

在其下方添加以下代码:

$filename2=str_replace($r[filetype], '', $file_name);//获得去掉后缀的文件名
$mytype = array (".txt", ".rar", ".zip");//定义需要保留原名的文件类型

然后,继续查找以下代码:

$r[filename]=$r[insertfile].$r[filetype];

将其修改为:

if(in_array($r[filetype],$mytype)){
        $r[filename]=$filename2."_".$r[insertfile].$r[filetype];//将真实文件名加在随机码的前面中间以_分隔
}
else{
        $r[filename]=$r[insertfile].$r[filetype];
}

以上修改完成后,系统会根据文件类型自动决定是否保留原始文件名。具体逻辑如下:

  • 如果文件类型属于“.txt”、“.rar”或“.zip”,则保留原始文件名,并在文件名后附加随机码。
  • 对于其他类型的文件,则仅使用随机码生成新的文件名。

$mytype = array (".txt", ".rar", ".zip");

这一行代码定义了哪些文件类型需要保留原始文件名。如果您希望扩展支持的文件类型,只需在此数组中添加相应的后缀即可。


通过上述方法,您可以轻松实现对上传文件名的自定义管理。这种方法不仅有助于提高文件管理效率,还能有效避免因文件名重复导致的问题。

注意:在实际操作中,请确保备份原始文件,以防意外修改导致系统故障。