帝国CMS实现d/file/与网站分离
笔记 by ecms 2016-07-04 11:39:07 二次开发   笔记   帝国CMS   

 第一步、
打开e\class\connect.php搜索 if($link)
162行左右
在上面添加:eDoPostFileServer();

第二步、
打开e\class\connect.php搜索//--------------- 公共 ---------------
169行左右
在上面添加:

PHP Code复制内容到剪贴板
  1. //--------------- 远程发布 ---------------    
  2.     
  3. //远程附件发布    
  4. function eDoPostFileServer(){    
  5. global $efileftp,$efileftp_fr,$efileftp_dr,$public_r;    
  6. if(emptyempty($public_r['openfileserver'])||!($efileftp_fr[0]||$efileftp_dr[0]))    
  7. {    
  8. return '';    
  9. }    
  10. if(!defined('InEmpireCMSFtp'))    
  11. {    
  12. include(ECMS_PATH.'e/class/ftp.php');    
  13. }    
  14. $pr=ReturnPostFtpInfo(1);    
  15. $efileftp=new EmpireCMSFTP();    
  16. $efileftp->fconnect($pr['ftphost'],$pr['ftpport'],$pr['ftpusername'],$pr['ftppassword'],$pr['ftppath'],$pr['ftpssl'],$pr['ftppasv'],$pr['ftpmode'],$pr['ftpouttime']);    
  17. $basepath=$pr['ftppath'].'/';    
  18. if($efileftp_fr[0])    
  19. {    
  20. $path=ReturnPostFtpFilePath(ReturnPostFtpFilename($efileftp_fr[0]));    
  21. $efileftp->ftp_mkdirs($basepath,$path);    
  22. $count=count($efileftp_fr);    
  23. for($i=0;$i<$count;$i++)    
  24. {    
  25. $lfile=$efileftp_fr[$i];    
  26. $hfile=$basepath.ReturnPostFtpFilename($efileftp_fr[$i]);    
  27. $efileftp->fTranFile($hfile,$lfile,0,0);    
  28. }    
  29. }    
  30. if($efileftp_dr[0])    
  31. {    
  32. $dcount=count($efileftp_dr);    
  33. for($di=0;$di<$dcount;$di++)    
  34. {    
  35. $dhfile=$basepath.ReturnPostFtpFilename($efileftp_dr[$di]);    
  36. $efileftp->fDelFile($dhfile);    
  37. }    
  38. }    
  39. $efileftp->fExit();    
  40. }    
  41. //返回发布FTP信息    
  42. function ReturnPostFtpInfo($pid){    
  43. global $empire,$dbtbpre;    
  44. $r=$empire->fetch1("select * from {$dbtbpre}enewspostserver where pid='$pid'");    
  45. return $r;    
  46. }    
  47. //返回远程实际文件地址    
  48. function ReturnPostFtpFilename($file){    
  49. $file=str_replace(ECMS_PATH,'',$file);    
  50. $file=str_replace('../','',$file);    
  51. $file=str_replace('d/file/','',$file);    
  52. return $file;    
  53. }    
  54. //返回远程实际目录    
  55. function ReturnPostFtpFilePath($file){    
  56. $r=explode('/',$file);    
  57. $count=count($r)-1;    
  58. $path=substr($file,0,strlen($file)-strlen($r[$count])-1);    
  59. return $path;    
  60. }    

 

 

 

 

 

第三步、
打开e\admin\SetEnews.php搜索<tbody id="setfileserver" style="display:none">
1117行左右
将:
<tbody id="setfileserver" style="display:none">
</tbody>

替换为:

PHP Code复制内容到剪贴板
  1. <tr>   
  2. <td height="25" colspan="2" class="header">远程附件设置</td>  
  3. </tr>  
  4. <tr>   
  5. <td height="25" bgcolor="#FFFFFF">启用远程附件</td>  
  6. <td height="25" bgcolor="#FFFFFF"><input type="radio" name="openfileserver" value="1"<?=$r['openfileserver']==1?' checked':''?> onclick="setfileserver.style.display='';">  
  7. 是   
  8. <input type="radio" name="openfileserver" value="0"<?=$r['openfileserver']==0?' checked':''?> onclick="setfileserver.style.display='none';">  
  9. 否 </td>  
  10. </tr>  
  11. <tbody id="setfileserver" style="display:none">  
  12. <tr>   
  13. <td height="25" bgcolor="#FFFFFF">启用 SSL 连接</td>  
  14. <td height="25" bgcolor="#FFFFFF"><input type="radio" name="fs_ftpssl" value="1"<?=$fsr[ftpssl]==1?' checked':''?>>  
  15. 是   
  16. <input type="radio" name="fs_ftpssl" value="0"<?=$fsr[ftpssl]==0?' checked':''?>>  
  17. 否 </td>  
  18. </tr>  
  19. <tr>   
  20. <td height="25" bgcolor="#FFFFFF">被动模式(pasv)连接</td>  
  21. <td height="25" bgcolor="#FFFFFF"><input type="radio" name="fs_ftppasv" value="1"<?=$fsr[ftppasv]==1?' checked':''?>>  
  22. 是   
  23. <input type="radio" name="fs_ftppasv" value="0"<?=$fsr[ftppasv]==0?' checked':''?>>  
  24. 否 </td>  
  25. </tr>  
  26. <tr>   
  27. <td height="25" bgcolor="#FFFFFF">FTP服务器地址</td>  
  28. <td height="25" bgcolor="#FFFFFF"><input name="fs_ftphost" type="text" id="fs_ftphost" value="<?=$fsr[ftphost]?>" size="38">  
  29. 端口:   
  30. <input name="fs_ftpport" type="text" id="fs_ftpport" value="<?=$fsr[ftpport]?>" size="4"></td>  
  31. </tr>  
  32. <tr>   
  33. <td height="25" bgcolor="#FFFFFF">FTP用户名</td>  
  34. <td height="25" bgcolor="#FFFFFF"><input name="fs_ftpusername" type="text" id="fs_ftpusername" value="<?=$fsr[ftpusername]?>" size="38">   
  35. </td>  
  36. </tr>  
  37. <tr>   
  38. <td height="25" bgcolor="#FFFFFF">FTP密码</td>  
  39. <td height="25" bgcolor="#FFFFFF"><input name="fs_ftppassword" type="password" id="fs_ftppassword" size="38">   
  40. <font color="#666666">(不修改密码请留空) </font></td>  
  41. </tr>  
  42. <tr>   
  43. <td height="25" bgcolor="#FFFFFF">传送模式</td>  
  44. <td height="25" bgcolor="#FFFFFF"><input type="radio" name="fs_ftpmode" value="1"<?=$fsr[ftpmode]==1?' checked':''?>>  
  45. ASCII   
  46. <input type="radio" name="fs_ftpmode" value="0"<?=$fsr[ftpmode]==0?' checked':''?>>  
  47. 二进制</td>  
  48. </tr>  
  49. <tr>   
  50. <td height="25" bgcolor="#FFFFFF">FTP 传输超时时间</td>  
  51. <td height="25" bgcolor="#FFFFFF"><input name="fs_ftpouttime" type="text" id="fs_ftpouttime" value="<?=$fsr[ftpouttime]?>" size="38">  
  52. 秒<font color="#666666">(0为服务器默认)</font></td>  
  53. </tr>  
  54. <tr>   
  55. <td height="25" bgcolor="#FFFFFF">远程附件目录</td>  
  56. <td height="25" bgcolor="#FFFFFF"><input name="fs_ftppath" type="text" id="fs_ftppath" value="<?=$fsr[ftppath]?>" size="38">   
  57. <font color="#666666">(目录结尾不要加斜杠“/”,空为根目录)</font></td>  
  58. </tr>  
  59. <tr>   
  60. <td height="25" bgcolor="#FFFFFF">远程访问地址</td>  
  61. <td height="25" bgcolor="#FFFFFF"><input name="fs_purl" type="text" id="fs_purl" value="<?=$fsr[purl]?>" size="38">   
  62. <font color="#666666">(结尾需加“/”,如:http://file.phome.net/)</font></td>  
  63. </tr>  
  64. <tr>  
  65. <td height="25" bgcolor="#FFFFFF">测试FTP服务器</td>  
  66. <td height="25" bgcolor="#FFFFFF"><input type="submit" name="Submit3" value="测试FTP服务器" onClick="document.form1.enews.value='CheckFileServerFtp';document.form1.action='SetEnews.php';document.form1.target='checkftpiframe';"> <font color="#666666">(无需保存设置即可测试,请在测试通过后再保存)</font>  
  67. </td>  
  68. </tr>  
  69. </tbody>  

 

 

 

本文来自于:http://blog.bichuo.com/biji/3.html

上一篇 帝国CMS缓存
Powered by yoyo苏ICP备15045725号