帝国CMS修改默认文件上传路径


帝国CMS默认的文件上传路径是/d/file/,配合上日期和栏目路径,会导致图片地址超长,看着很不舒服。现在我教大家如何把帝国CMS默认文件上传路径修改成/upload/。

第一步:修改网站后台配置,将/d/file/修改成/upload/,如图所示:

步骤二、修改网站后台,将文件直接上传到/d/file/目录,不设置栏目目录和日期目录,如下图所示:

到这里,我们完成了网站后台的设置,设置逻辑是把默认的/d/file/替换成/upload/路径,并把文件直接放在设置的路径下,不设置中间多余的路径。但是到这里还不行,帝国CMS相对来说已经很人性化了,可惜帝国团队在这里可能并没有考虑到使用者更换默认文件目录的需求。下面我们还需要修改一下网站文件,可以从FTP或者是服务器上直接修改。

第三步、使用FTP或才是在服务器上,在网站根目录建一个文件夹,命名为 upload,并设置成777权限(非常重要!)。

步骤四、修改网站函数,将/d/file/替换成/upload/

打开/e/class/connect.php文件,找到函数ReturnFileSavePath(),将函数中的d/file全部替换成 upload。代码如下:

修改前:

  1. //返回附件目录
  2. function ReturnFileSavePath($classid,$fpath=''){
  3.     global $public_r,$class_r;
  4.     $fpath=$fpath||strstr(','.$fpath.',',',0,')?$fpath:$public_r['fpath'];
  5.     $efileurl=eReturnFileUrl();
  6.     if($fpath==1)//p目录
  7.     {
  8.         $r['filepath']='d/file/p/';
  9.         $r['fileurl']=$efileurl.'p/';
  10.     }
  11.     elseif($fpath==2)//file目录
  12.     {
  13.         $r['filepath']='d/file/';
  14.         $r['fileurl']=$efileurl;
  15.     }
  16.     else
  17.     {
  18.         if(empty($classid))
  19.         {
  20.             $r['filepath']='d/file/p/';
  21.             $r['fileurl']=$efileurl.'p/';
  22.         }
  23.         else
  24.         {
  25.             $r['filepath']='d/file/'.$class_r[$classid][classpath].'/';
  26.             $r['fileurl']=$efileurl.$class_r[$classid][classpath].'/';
  27.         }
  28.     }
  29.     return $r;
  30. }

修改后:

  1. //返回附件目录
  2. function ReturnFileSavePath($classid,$fpath=''){
  3.     global $public_r,$class_r;
  4.     $fpath=$fpath||strstr(','.$fpath.',',',0,')?$fpath:$public_r['fpath'];
  5.     $efileurl=eReturnFileUrl();
  6.     if($fpath==1)//p目录
  7.     {
  8.         $r['filepath']='upload/p/';
  9.         $r['fileurl']=$efileurl.'p/';
  10.     }
  11.     elseif($fpath==2)//file目录
  12.     {
  13.         $r['filepath']='upload/';
  14.         $r['fileurl']=$efileurl;
  15.     }
  16.     else
  17.     {
  18.         if(empty($classid))
  19.         {
  20.             $r['filepath']='upload/p/';
  21.             $r['fileurl']=$efileurl.'p/';
  22.         }
  23.         else
  24.         {
  25.             $r['filepath']='upload/'.$class_r[$classid][classpath].'/';
  26.             $r['fileurl']=$efileurl.$class_r[$classid][classpath].'/';
  27.         }
  28.     }
  29.     return $r;
  30. }

当然,别忘记保存文件。

 

到这里,就可以完整的把帝国CMS默认上传文件的路径修改成自己想要的路径啦~