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

时间:2024年03月28日

/

来源:网络

/

编辑:佚名

帝国cms7.5中,上传文件的命名,由函数控制,该函数:
//    函数returndotranfilename位于文件/e/class/connect.php中
//    返回上传文件名中。
//    返回上传文件名
function ReturnDoTranFilename($file_name,$classid){
$filename=md5(uniqid(microtime()).EcmsRandInt());
return $filename;
}
可见是用的系统的毫秒级别时间+随机数,然后md5函数,出来是32位的字符串。
帝国cms论坛看到,有这样的需求:
比如变成 userid_20240102131315.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;
}
这样修改后能满足需求,但是如果某个会员大量的并发上传文件,可能带来重名问题。
猜你需要

豫ICP备2021026617号-1  豫公网安备:41172602000185   Copyright © 2021-2028 www.78moban.com/ All Rights Reserved

本站作品均来自互联网,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如有侵犯您的版权,请联系 1565229909#qq.com(把#改成@),我们将立即处理。