代理方式下,TimThumb 不能够找到你指定的图片

作者

TimThumb 出现如下的提示 Could not find the internal image you specified., 意思是找不到指定的图片。如果想压缩图片,首先要获取图片。现在的问题是获取不到图片。

首先在程序中找了一下,程序是执行到哪里出问题了。
Could not find the internal image you specified.
程序执行到错误提示前,有个判断this->isURL不为真,说明走的本地文件。在服务器上,使用的是代理,文件本身就存在。 TimThumb同样支持远程文件,本地文件不存在,就走远程的文件,就可以。

解决的方法

TimThumb中有一行代码

  $this->src = preg_replace('/https?:\/\/(?:www\.)?' . $this->myHost . '/i', '', $this->src);

注释掉就可以。

了解更多

比如一个请求

https://www.liuhaolin.com/timthumb.php?src=https://www.liuhaolin.com/imgdir/img.jpg?w=300&h=200&zc=1

# $this->src = https://www.liuhaolin.com/timthumb.php?src=https://www.liuhaolin.com/imgdir/img.jpg?w=300&h=200&zc=1;
# $this->myHost = www.liuhaolin.com

执行上面的代码,把一个远程文件,变成了一个本地。 需要做的是,不进行转化。所以注释掉这行代码就可以。

回复

您的电子邮箱地址不会被公开。