# 帝国CMS附件文件名自定义修改方法

*Published:* 2023-10-23
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2023年10月23日，已超过 180天没有更新



### 用原文件名

1、打开 /e/class/connect.php，

2、查找

```
//返回上传文件名
```

3、修改为

```
function ReturnDoTranFilename($file_name,$classid){
$extension = substr(strrchr($file_name, '.'), 1);
$filename=basename($file_name,".".$extension).date("YmdHis");
return $filename;
}
```

### 用户上传文件名

1、打开 /e/class/connect.php，

2、查找

```
//返回上传文件名
```

3、修改为

```
//返回上传文件名
function ReturnDoTranFilename($file_name,$classid){
    //$filename=md5(uniqid(microtime()).EcmsRandInt());
    $userid=getcvar('loginuserid',1);
    if(!$userid)$userid=getcvar('mluserid');
    if(!$userid)$userid='0';
    $filename=$userid."_".date('YmdHis');
    return $filename;
}
```

这种方法是以用户ID+时间的方式命名，如果用户有大量上传，可能会出现重名的可能性，所以不建议、

### 其他方法

1、打开 /e/class/connect.php，

2、查找

```
//返回上传文件名
```

3、在这句下面加入下面两行代码

```
$filename2=str_replace($r[filetype], ”, $file_name); //获得去掉后缀的文件名
$mytype = array (“.cod”, “.jad”); //定义需要保留原名的文件类型
```

4、查找

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

5、修改为

```
if(in_array($r[filetype],$mytype)){ $r[filename]=$filename2.$r[filetype]; //真实文件名 } else { $r[filename]=$r[insertfile].$r[filetype]; }
```