帝国CMS上传文件保存原文件名的方法(代码详解)


本文教大家使用帝国CMS上传图片等文件时如何保留原文件名。其实,简单地修改网站源代码就可以实现。

首先,打开/e/class/connect.php文件,找到函数  DoTranFile(),修改这个函数的前几行代码,详细代码如下:

 
  1. //上传文件
  2. function DoTranFile($file,$file_name,$file_type,$file_size,$classid,$ecms=0){
  3.     global $public_r,$class_r,$doetran,$efileftp_fr;
  4.     //文件类型
  5.     $r[filetype]=GetFiletype($file_name);
  6.     $filename2=str_replace($r[filetype], '', $file_name); //添加这行代码
  7.     //文件名
  8.     $r[insertfile]=ReturnDoTranFilename($file_name,$classid);
  9.     //$r[filename]=$r[insertfile].$r[filetype]; //注释或删掉此行代码
  10.     $r[filename]=$filename2.$r[filetype];  //添加这行代码
  11.     //日期目录
  12.     $r[filepath]=FormatFilePath($classid,$mynewspath,0);
  13.     $filepath=$r[filepath]?$r[filepath].'/':$r[filepath];
  14. ....
  15. ....
  16. }

 就是这么简单,添加两行代码,删除一行代码即可。

当然,我们还可以通过添加文件名验证代码来实现部分文件上传后保存原名,部分文件使用系统随机命名,这个以后心情好了再说。