国外免费空间无法下载远程图片本地化的原因

 晓兔   2010-07-04 05:00   1,877 人飘过  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是打开的,但仍就无法下载远程图片,郁闷啊~~不知道还有哪个参数不对……

  有没有高手知道远程图片本地化具体还需要哪些服务器环境参数?

历史上的今天:

本文地址:https://www.loveif.com/post/200.html
版权声明:本文为原创文章,版权归 晓兔个人博客 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

  1. 余宇婷
    余宇婷 【农民】 @回复

    啊啊啊啊、帮帮我呗、

  2. 瓶子无芯
    瓶子无芯 【县长】 @回复

    wp插件越装越慢尽量只装几个用得到的。

  3. QHD苹果
    QHD苹果 【农民】 @回复

    免费的不能好用的。