-1
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

为什么 ?

4

1 回答 1

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"

希望这可以帮助!

于 2013-07-16T18:17:19.077 回答