帝國CMS附件文件名默認是是MD5的方法命名的,如果項目不需要這樣該如何自定義帝國CMS附件名稱了?,幾種情況下的修改方法都分享給大家。
用原文件名
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+時間的方式命名,如果用戶有大量上傳,可能會出現(xiàn)重名的可能性,所以不建議!
其他方法
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]; }
網(wǎng)上找的沒測試,看著挺繁瑣,自行測試可行性。