首页 > 其他 > 网站日记>正文

帝国cms用户上传文件名的命名规则及修改方法

提示: 阅读权限:公开  

帝国cms7.5中,上传文件的命名,由函数控制,该函数:

//函数returndotranfilename位于文件/e/class/connect.php#//返回上传文件名中。

//返回上传文件名
function ReturnDoTranFilename($file_name,$classid){
	$filename=md5(uniqid(microtime()).EcmsRandInt());
	return $filename;
}

可见是用的系统的毫秒级别时间+随机数,然后md5函数,出来是32位的字符串。

帝国cms论坛看到,有这样的需求:

比如变成 userid_20220122131415.jpg 这样会员ID+上传日期的名字呢?

 

可以这样:

//返回上传文件名
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;
}

 

这样修改后能满足需求,但是如果某个会员大量的并发上传文件,可能带来重名问题。

上一篇:帝国cms插件之迅搜

下一篇:帝国cms插件之标题生成标题图片

tags:

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部