查看: 65|回复: 0

[教程] 帝国CMS上传附件命名实现以原文件名命名的方法

[复制链接]

2

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2012-3-3
发表于 2023-7-15 00:00:00 | 显示全部楼层 |阅读模式

帝国CMS在通过编辑器的上传附件功能来上次附件时,原程序会给附件重新命名,命名结果都是一大串的数字+字母组合来命名的,这种形式的命名方式,对用户来说看着很不舒服,也不利于我们通过FTP对附件进行调整或替换。因此,有些时候我们就需要把上传的附件改成以原文件名来命名的规则,具体方法如下:

一、打开文件\e\class\connect.php

查找到:

 

代码如下:
$r[filetype]=GetFiletype($file_name);

 

在下面加入:

 

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

 

二、查找

 

代码如下:
$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];
}

 

至此修改完成!

补充说明:
 

代码如下:
$mytype = array (".txt", ".rar", ".zip", ".doc", ".docx", ".xlsx", ".ppt", ".pdf");
  这一句就是定义哪些文件类型需要加上源文件名的。

 

.$r[insertfile]  这个代表的是随机码
.$r[filetype]   这个代表的是文件类型
$filename2 这个代表的是原文件名

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部