國外免費空間無法下載遠程圖片本地化的原因

 曉兔   2010-07-04 05:00   1,728 人飄過  3 條評論
國外免費空間無法下載遠程圖片本地化的原因

  最近又申請了一些國外的免費空間,打算做為新站的過渡期……

  新站用的是wordpress,兼容性還是相當好的,幾乎在任何一個免費空間上都可以很好地裸奔運行。但是在安裝了一些插件后,問題就出來了。

  我安裝的是一個首頁顯示縮略圖插件,其原理是自動下載文章內的外鏈圖片到本地,然后自動縮略圖片。但是我發現我裝了以后首頁無法顯示圖片,而同樣的我在本地電腦上測試的時候一切正常。翻來覆去檢查,隨后發現可能是服務器環境配置的問題,導致遠程圖片本地化無能。[break]

  詢問了插件作者該插件對服務器環境配置的要求,他也不太清楚,只是說file_get_content這個函數報錯會導致無法下載遠程圖片。

  又找了一些資料,遠程下載圖片是利用PHP的一個函數來讀取文件數據,然后在本地建立一個jpg或gif后綴的文件保存下來。有一篇文章說使用php讀取遠程文件有4種方式:fopen(),file_get_contents(),curl函數,socket函數。而其中fopen()與file_get_contents()需要在php.ini配置文件中激活allow_url_fopen選項。

  問題漸漸明了了,大家都知道很多國外免費空間都沒有開啟allow_url_fopen,因為開啟這個選項,一般就能使用極耗資源的采集功能,包括下載遠程圖片本地化,這會占用大量服務器資源。像dede本地化圖片用的函數跟ddos用的是一種,同樣也比較容易受到攻擊。另外,這也是為什么很多國外空間無法安裝discuz的原因,因為discuz也要求allow_url_fopen開啟。

  所以遠程圖片本地化要求空間相應目錄可寫外,還要求php的allow_url_fopen選項設置為On。如果你能編輯php.ini,那就自己改一下好了,一般這樣就能正常下載遠程圖片了。

  以上是遠程圖片本地化的必要條件,但并不是說有了這些就一定可以遠程圖片本地化了。像我用godaddy家的win主機php的allow_url_fopen是打開的,但仍就無法下載遠程圖片,郁悶啊~~不知道還有哪個參數不對……

  有沒有高手知道遠程圖片本地化具體還需要哪些服務器環境參數?

歷史上的今天:

本文地址:http://www.stamina-metal.com/post/200.html
版權聲明:本文為原創文章,版權歸 曉兔個人博客 所有,歡迎分享本文,轉載請保留出處!

 發表評論


表情

  1. 余宇婷
    余宇婷 【農民】 @回復

    啊啊啊啊、幫幫我唄、

  2. 瓶子無芯
    瓶子無芯 【市長】 @回復

    wp插件越裝越慢盡量只裝幾個用得到的。

  3. QHD蘋果
    QHD蘋果 【農民】 @回復

    免費的不能好用的。