我正在使用 Timthumb 来调整我的 wordpress 博客中的图片大小。它在我的本地机器上运行良好,但是在远程服务器上上传时 Timthumb 返回以下错误:
找不到您指定的内部图像。
以及浏览器控制台中的 400 Bad 请求。
如何解决这个问题?我被告知它可能取决于服务器路径配置。我使用的 Timthumb 版本是:2.8.10
我正在使用 Timthumb 来调整我的 wordpress 博客中的图片大小。它在我的本地机器上运行良好,但是在远程服务器上上传时 Timthumb 返回以下错误:
找不到您指定的内部图像。
以及浏览器控制台中的 400 Bad 请求。
如何解决这个问题?我被告知它可能取决于服务器路径配置。我使用的 Timthumb 版本是:2.8.10
我刚刚遇到那个错误,这是因为它在文件系统中的错误位置查找文件。启用调试并将其设置为级别 3。打开显示此错误的页面。下载错误日志(与脚本相同的目录)。你会看到它尝试的所有路径。几乎可以从任何地方输出dirname(__FILE__)
。你会看到它需要的真实路径。将其添加到timthumb-config.php
as
$_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/02
TimThumb 那样访问图像,如果它会将其视为外部 URL...但它会将其视为内部并且它不会找到如此设置的图像相应的 docroot,您可能需要使用前面提到的替换 hack。
我对 .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/。