首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建thumb时出错

创建thumb时出错
EN

Stack Overflow用户
提问于 2010-12-07 16:28:06
回答 4查看 629关注 0票数 1

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

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

代码语言:javascript
复制
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
EN

回答 4

Stack Overflow用户

发布于 2010-12-07 16:53:55

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

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

票数 0
EN

Stack Overflow用户

发布于 2010-12-07 17:04:51

该错误似乎来自curl命令:

代码语言:javascript
复制
$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. ’(如果需要,你可以在类中修改它@17行),/不是用好的chmod创建的,所以fopen不工作。它用于将远程图像保存在服务器上;如果没有地方保存,则curl命令将失败。
票数 0
EN

Stack Overflow用户

发布于 2010-12-07 17:42:39

这很简单,因为您要求curl创建一个您的操作系统(或者更准确地说,您的文件系统)不允许它使用的文件名。

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

在CURL中,你的代码说

代码语言:javascript
复制
$fh = fopen ($local_filepath, 'w');

在PHP w中有一个描述:

仅以写入方式打开;将文件指针放在文件的开头,并将文件截断为零长度。如果文件不存在,会尝试将其创建为

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

之后,将文件夹切换到777,然后再次运行该脚本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4374669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档