上門一對一計算機家教
當前位置: 首頁 > dedecms家教 >

織夢dedecms遠程圖片無法保存到本地解決方案

點擊: 時間:2016-07-16 來源:北京家教網
有些時候我們想保存圖片到本地服務器的時候發現保存不了,比喻我們自己拷貝自己的站點到另外一個服務器等等,下面模板之家徐國祥分享Dedecms無法保存遠程圖片到本地服務器的解決方法。分享給大家供大家參考。具體分析如下: 一、設置錯

有些時候我們想保存圖片到本地服務器的時候發現保存不了,比喻我們自己拷貝自己的站點到另外一個服務器等等,下面模板之家徐國祥分享Dedecms無法保存遠程圖片到本地服務器的解決方法。分享給大家供大家參考。具體分析如下:

一、設置錯誤導致

1、錯誤設置如下圖。這里不能為空也不可以只為/

 

 

2、正確設置如下圖,填入你的網站網址,才能http請求遠程圖片

 

 

二、修改代碼實現方法

我們新配置了一臺服務器但在使用dedecms系統時發現遠程圖片都無法本地化了,就是無法保存遠程服務器圖片到本地了,出現這種問題我想了可能幾個原因,下面我們一起來看看解決辦法.

原因分析:dedecms 遠程圖片本地化用到函數 fsockopen函數,所以我們要求空間相應目錄可寫外還要求php的allow_url_fopen 選項設置為On.

修改PHP的配置文件,找到php.ini變更內容,php.ini 文件里:

"allow_url_fopen = On"

為了防止WEB變種攻擊LINUX虛擬主機PHP 禁用allow_url_fopen功能,引用allow_url_fopen功能在客戶站點里運行惡意程序.

如果上面解決不了我們看看是不是upload_tmp_dir沒開打開:

upload_tmp_dir = "C:/php/tmp"

此項沒有設置,將upload_tmp_dir項前面的分號去掉,并在后面添加好路徑,上傳就OK了,給C:/php/tmp目錄users讀取權限即可解決問題,當然如果你沒有服務器權限,那么我們只要在程序上進行操作了.

具體修改地方是 /include/dedehttpdown.class.php 第507行,代碼如下:

$this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $errstr,10);

替換為:

$this->m_fp = @stream_socket_client($this->m_host . ':' . $this->m_port, $errno, $errstr,10);

保存之后試一下看看是不是可以了,當然如果服務器不能上外網也有可能不能下載遠程圖片到本地.

總結:希望這篇文章能夠幫助大家解決遠程圖片不能保存到本地服務器的問題。

------分隔線----------------------------
30选5开奖查询