如何用phpthumb保存拇指?

时间:2013-07-16 17:54:05

标签: php phpthumb

require_once '../ThumbLib.inc.php';
$thumb = PhpThumbFactory::create('test.jpg');
$thumb->resize(100, 100)->save('/img/new_thumb.jpg');
$thumb->show();

我为img文件夹设置了777权限,但是我收到了这个错误:

Fatal error: Uncaught exception 'RuntimeException' with message 'File not writeable: /img/new_thumb.jpg' in /home/xjohn/www.mysite.com/phpthumb/GdThumb.inc.php:662 Stack trace: #0 /home/xjohn/www.mysite.com/phpthumb/examples/resize_basic.php(31): GdThumb->save('/img/new_th...') #1 {main} thrown in /home/xjohn/www.mysite.com/phpthumb/GdThumb.inc.php on line 662

为什么?

1 个答案:

答案 0 :(得分:2)

错误说明了一切:

Fatal error: Uncaught exception 'RuntimeException' with message 'File not writeable: 

当您的PHP脚本没有足够的权限来创建文件时,通常会出现错误。

此处,您在保存图片时使用绝对URL:

$thumb->resize(100, 100)->save('/img/new_thumb.jpg');

如果要使用绝对URL,则必须包含完整路径,如下所示:

$new_image = '/home/xjohn/www.mysite.com/phpthumb/img/new_thumb.jpg/';
$thumb->resize(100, 100)->save($new_image);

或者,如果图像与脚本位于同一目录中,则只能使用相对路径:

$thumb->resize(100, 100)->save(__DIR__.'/my_new_image.jpg');

根据下面的@OrangePill:

最好在脚本中使用$_SERVER["DOCUMENT_ROOT"]以提高可维护性。

$_SERVER["DOCUMENT_ROOT"]."/phpthumb/img/new_thumb.jpg"

希望这有帮助!