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

Я установил 777 разрешения на папку IMG, но я получаю эту ошибку:Как сохранить большой палец с помощью phpthumb?

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 

Почему?

+0

Я предполагаю, что это потому, что путь неправильный - может быть, это должно быть '/ home/xjohn/www.mysite.com/img/new_thumb.jpg'? Хотя вы можете добавить что-то, что будет работать программно. – andrewsi

+0

Я пробовал этот путь, но получаю ту же ошибку – xRobot

+0

Каков полный путь к вашей папке img? Это тот, который вы должны использовать. – andrewsi

ответ

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" 

Надеюсь, это поможет!

+0

Альтернатива абсолютному URL-адресу использовать '$ _SERVER [" DOCUMENT_ROOT "]."/phpthumb/img/new_thumb.jpg ", это будет поддерживать его работу между локальным и живым. Последний экземпляр попытается сохранить его относительно того, где был запущен запрос , не обязательно, когда этот код вызывается, если вы хотите его относительно того, где он называется, он должен быть '__DIR __."/my_new_image.jpg "' – Orangepill

+0

@Orangepill: Хорошая идея. Обновлено, спасибо :) –

Смежные вопросы