织梦DedeCMS发布图片到指定远程服务器
网站建设 2022-07-27 08:13www.1681989.com免费网站
此教程让织梦DedeCMS网站的图片发布到指定服务器上,且网址也使用远程的网址,可以节省本地网站的文件空间。 Lux宝塔面板的小伙伴需要在PureFTPd里开启被动模式 进入宝塔面板,右侧,软件管理,找到PureFTPd,设置,配置修改,搜索ForcePassiveIP,去掉它前面的#号,192.168.0.1改成你的外网IP,保存,重启PureFTPd或者服务器 其他lux环境的vsftpd,搜索pasv_address+外网IP 开启远程设置 文章模型缩略图和文章内容图片发布到远程服务器 1、 […]
此教程让织梦DedeCMS网站的图片发布到指定服务器上,且网址也使用远程的网址,可以节省本地网站的文件空间。
Lux宝塔面板的小伙伴需要在PureFTPd里开启被动模式
进入宝塔面板,右侧,软件管理,找到PureFTPd,设置,配置修改,搜索ForcePassiveIP,去掉它前面的#号,192.168.0.1改成你的外网IP,保存,重启PureFTPd或者服务器
其他lux环境的vsftpd,搜索pasv_address+外网IP
开启远程设置
文章模型缩略图和文章内容图片发布到远程服务器
1、打开 /dede/article_add.php 找到
//生成HTML
在它上面加入
|
$row1 = $dsql->GetOne("SELECT FROM `58pic_multiserv_config`"); |
|
$isftp = $row1['remoteuploads']; |
|
$ftpurl = $row1['remoteupUrl']; |
|
$ftpconfig = $row1['servfo']; |
|
$ftpconfig_arr = array(); |
|
$ftpconfig_txt = explode('|', $ftpconfig); |
|
foreach($ftpconfig_txt as $str){ |
|
$ftpconfig_arr[] = trim($str); |
|
} |
|
|
|
if($isftp == 1){ |
|
$config = array( |
|
'hostname' => $ftpconfig_arr[1], |
|
'username' => $ftpconfig_arr[3], |
|
'password' => $ftpconfig_arr[4], |
|
'port' => $ftpconfig_arr[2], |
|
'debug' => 'TRUE' |
|
); |
|
$ftps = new FTP(); |
|
$ftps->connect($config); |
|
$row2 = $dsql->GetOne("SELECT litpic FROM `58pic_archives` WHERE id=$arcID"); |
|
$imglist = $row2['litpic']; |
|
$row3 = $dsql->GetOne("SELECT body FROM `$addtable` WHERE aid=$arcID"); |
|
preg_match_all("/<img([^>])\ssrc=('|\")([^'\"]+)('|\")/", $row3['body'], $matches); |
|
$arr=array_unique($matches[3]); |
|
foreach($arr as $key){ |
|
$imglist .= ','.$key; |
|
} |
|
$imglistarr = array(); |
|
$imglist_txt = explode(',', $imglist); |
|
foreach($imglist_txt as $str){ |
|
$remotefile = str_replace(DEDEROOT, '', $str); |
|
$localfile = '..'.$remotefile; |
|
$remotefile2 = str_replace('uploads/', 'uploadfile/', $remotefile); |
|
$remotedir = preg_replace('/[^\/]\.(jpg|gif|bmp|png)/', '', $remotefile2); |
|
$ftps->rmkdir($remotedir); |
|
$ftps->upload($localfile, $remotefile2); |
|
} |
|
$dsql->ExecuteNoneQuery("UPDATE `58pic_archives` SET `litpic`=REPLACE(`litpic`,'/uploads','$ftpurl/uploadfile') WHERE `litpic` LIKE '%/uploads%' AND `id` = $arcID"); |
|
$dsql->ExecuteNoneQuery("UPDATE `$addtable` SET `body`=REPLACE(`body`,'/uploads','$ftpurl/uploadfile') WHERE `body` LIKE '%/uploads%' AND `aid` = $arcID"); |
|
$ftps->close(); |
|
} |
2、打开 /dede/album_edit.php 找到
//生成HTML
在它上面加入
|
$row1 = $dsql->GetOne("SELECT FROM `58pic_multiserv_config`"); |
|
$isftp = $row1['remoteuploads']; |
|
$ftpurl = $row1['remoteupUrl']; |
|
$ftpconfig = $row1['servfo']; |
|
$ftpconfig_arr = array(); |
|
$ftpconfig_txt = explode('|', $ftpconfig); |
|
foreach($ftpconfig_txt as $str){ |
|
$ftpconfig_arr[] = trim($str); |
|
} |
|
|
|
if($isftp == 1){ |
|
$config = array( |
|
'hostname' => $ftpconfig_arr[1], |
|
'username' => $ftpconfig_arr[3], |
|
'password' => $ftpconfig_arr[4], |
|
'port' => $ftpconfig_arr[2], |
|
'debug' => 0 |
|
); |
|
$ftps = new FTP(); |
|
$ftps->connect($config); |
|
|
|
$row2 = $dsql->GetOne("SELECT litpic FROM `58pic_archives` WHERE id=$id"); |
|
$imglist = $row2['litpic']; |
|
$row3 = $dsql->GetOne("SELECT imgurls FROM `$addtable` WHERE aid=$id"); |
|
$imgurls = $row3['imgurls']; |
|
if($imgurls != '') |
|
{ |
|
$dtp = new DedeTagParse(); |
|
$dtp->LoadSource($imgurls); |
|
$images = array(); |
|
if(is_array($dtp->CTags)) |
|
{ |
|
foreach($dtp->CTags as $ctag) |
|
{ |
|
if($ctag->GetName() == 'img') |
|
{ |
|
$imglist .= ','.trim($ctag->GetInnerText()); |
|
} |
|
} |
|
} |
|
$dtp->Clear(); |
|
} |
|
|
|
$imglistarr = array(); |
|
$imglist_txt = explode(',', $imglist); |
|
foreach($imglist_txt as $str){ |
|
if(preg_match('/uploads/', $str)){ |
|
$remotefile = str_replace(DEDEROOT, '', $str); |
|
$localfile = '..'.$remotefile; |
|
$remotefile2 = str_replace('uploads/', 'uploadfile/', $remotefile); |
|
$remotedir = preg_replace('/[^\/]\.(jpg|gif|bmp|png)/', '', $remotefile2); |
|
$ftps->rmkdir($remotedir); |
|
$ftps->upload($localfile, $remotefile2); |
|
} |
|
} |
|
$dsql->ExecuteNoneQuery("UPDATE `58pic_archives` SET `litpic`=REPLACE(`litpic`,'/uploads','$ftpurl/uploadfile') WHERE `litpic` LIKE '%/uploads%' AND `id` = $id"); |
|
$dsql->ExecuteNoneQuery("UPDATE `$addtable` SET `imgurls`=REPLACE(`imgurls`,'/uploads','$ftpurl/uploadfile') WHERE `imgurls` LIKE '%/uploads%' AND `aid` = $id"); |
|
$ftps->close(); |
|
} |
完成。