创建拇指时出错

时间:2010-12-07 08:28:06

标签: php thumbnails

我使用这个开源 http://code.google.com/p/timthumb/

但我尝试从我的主机创建一个拇指得到一个错误 这个链接图像希望创建一个拇指。

http://pixhost.info/avaxhome/94/91/00179194.jpeg

error reading file http://pixhost.info/avaxhome/94/91/00179194.jpeg from remote host: Failed writing body (37 != 1448)
Query String : src=http://pixhost.info/avaxhome/94/91/00179194.jpeg

4 个答案:

答案 0 :(得分:0)

您应该在要找到timthumb.php的目录中手动创建两个子文件夹cachetemp。这些子文件夹需要将权限设置为尽可能开放(在Linux机器上为777),以便让服务器用户帐户写入这些权限。那一切都应该没问题。请注意,您无法从网上抓取图片(据我所知)。图片应放在本地机器上。

示例:http://myserver.com/web/timthumb.php?src=scotland.jpg

答案 1 :(得分:0)

错误似乎来自curl命令:

$ch = curl_init ($src);
curl_setopt ($ch, CURLOPT_TIMEOUT, 15);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1");
curl_setopt ($ch, CURLOPT_URL, $src);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0');
curl_setopt ($ch, CURLOPT_FILE, $fh);
if (curl_exec ($ch) === FALSE) {
    if (file_exists ($local_filepath)) {
        unlink ($local_filepath);
    }
    display_error ('error reading file ' . $src . ' from remote host: ' . curl_error($ch));
}
curl_close ($ch);
fclose ($fh);

它可能来自超时。你可以改变它@ line 607


编辑:

好吧,我测试了它(因为有人不认为指出代码正在做错误并且猜测是不够的)它在我的服务器上完美运行。

所以它可以是:

  1. 超时
  2. 目录'./cache'(您可以在课程中更改,如果需要@第17行)没有创建/不使用好的chmod,因此fopen不起作用。它用于保存服务器上的远程图像;如果没有地方可以保存,那么curl命令就会失败。

答案 2 :(得分:0)

这只是因为你要求curl创建一个文件名,操作系统(或者更确切地说是你的文件系统)不允许它使用。

您的代码指定如果该文件不存在,则继续从该URL获取副本,并且您不会在PHP脚本中创建本地文件。

在你的CURL中你的代码说

$fh = fopen ($local_filepath, 'w');

在PHP w 中有一个描述:

仅供写作;将文件指针放在文件的开头,并将文件截断为零长度。如果该文件不存在,会尝试创建

无法创建文件的主要原因是文件夹权限,因为我们在该文件夹(define ('DIRECTORY_CACHE', './cache');)中有一个常量,您需要在其中包含一个名为缓存的文件夹执行脚本的相同目录 ./

CHMOD 文件夹 777 并再次运行脚本

答案 3 :(得分:0)

或许您应该添加域名,如果它是外部的。

$allowedSites = array (
    'flickr.com',
    'picasa.com',
    'blogger.com',
    'wordpress.com',
    'img.youtube.com',
);

(参见timthumb.php文件)