Dedecms無法保存遠(yuǎn)程圖片到本地服務(wù)器的解決方法

字號(hào):


    本文實(shí)例講述了Dedecms無法保存遠(yuǎn)程圖片到本地服務(wù)器的解決方法。分享給大家供大家參考。具體分析如下:
    我們新配置了一臺(tái)服務(wù)器但在使用dedecms系統(tǒng)時(shí)發(fā)現(xiàn)遠(yuǎn)程圖片都無法本地化了,就是無法保存遠(yuǎn)程服務(wù)器圖片到本地了,出現(xiàn)這種問題我想了可能幾個(gè)原因,下面我們一起來看看解決辦法.
    原因分析:dedecms 遠(yuǎn)程圖片本地化用到函數(shù) fsockopen函數(shù),所以我們要求空間相應(yīng)目錄可寫外還要求php的allow_url_fopen 選項(xiàng)設(shè)置為On.
    修改PHP的配置文件,找到php.ini變更內(nèi)容,php.ini 文件里:
    復(fù)制代碼代碼如下:"allow_url_fopen = On"
    為了防止WEB變種攻擊LINUX虛擬主機(jī)PHP 禁用allow_url_fopen功能,引用allow_url_fopen功能在客戶站點(diǎn)里運(yùn)行惡意程序.
    如果上面解決不了我們看看是不是upload_tmp_dir沒開打開:
    upload_tmp_dir = "C:/php/tmp"
    此項(xiàng)沒有設(shè)置,將upload_tmp_dir項(xiàng)前面的分號(hào)去掉,并在后面添加好路徑,上傳就OK了,給C:/php/tmp目錄users讀取權(quán)限即可解決問題,當(dāng)然如果你沒有服務(wù)器權(quán)限,那么我們只要在程序上進(jìn)行操作了.
    具體修改地方是 /include/dedehttpdown.class.php 第507行,代碼如下:
    復(fù)制代碼代碼如下:$this->m_fp = @fsockopen($this->m_host, $this->m_port, $errno, $errstr,10);
    替換為:
    復(fù)制代碼代碼如下:$this->m_fp = @stream_socket_client($this->m_host . ':' . $this->m_port, $errno, $errstr,10);
    保存之后試一下看看是不是可以了,當(dāng)然如果服務(wù)器不能上外網(wǎng)也有可能不能下載遠(yuǎn)程圖片到本地.
    希望本文所述對(duì)大家的dedecms建站有所幫助。