0

我正在使用 Timthumb 来调整我的 wordpress 博客中的图片大小。它在我的本地机器上运行良好,但是在远程服务器上上传时 Timthumb 返回以下错误:

找不到您指定的内部图像。

以及浏览器控制台中的 400 Bad 请求。

如何解决这个问题?我被告知它可能取决于服务器路径配置。我使用的 Timthumb 版本是:2.8.10

4

2 回答 2

2

我刚刚遇到那个错误,这是因为它在文件系统中的错误位置查找文件。启用调试并将其设置为级别 3。打开显示此错误的页面。下载错误日志(与脚本相同的目录)。你会看到它尝试的所有路径。几乎可以从任何地方输出dirname(__FILE__)。你会看到它需要的真实路径。将其添加到timthumb-config.phpas

$_SERVER['DOCUMENT_ROOT'] = '/home/username/public_html';

作为一个例子,我必须这样做(包装在 php 标签中)。以前它使用了一些东西,/bin/usr/htdocs这太详细了!

在函数的第 850 行附近getLocalImagePath,添加以下内容:

$src = str_replace ( "~username/" , "" , $src );

这是可选的,替换username为其他内容。

另一种情况是,您正在使用一些 htaccess 魔术,以便像访问图像/files/2012/02而不是/wp-content/uploads/2012/02TimThumb 那样访问图像,如果它会将其视为外部 URL...但它会将其视为内部并且它不会找到如此设置的图像相应的 docroot,您可能需要使用前面提到的替换 hack。

于 2012-07-04T00:18:08.427 回答
0

我对 .htaccess 进行了一些调整,以隐藏我正在使用 Wordpress 的事实。在 timthumb 2.8.11 上。

$this->localImage = $this->getLocalImagePath($this->src);

我已经编写了这行代码

$this->src = str_replace('/file/', '/wp-content/uploads/', $this->src);

正常 WPway 中的/file/应该是/wp-content/uploads/

于 2013-09-19T20:43:38.353 回答