Ошибки PhpThumb
Попытка заставить phpthumb работать, но с небольшой проблемой в данный момент. Получил простую демонстрацию для работы, так что я мог бы что-то упустить в моей функции, но просто не могу найти что:(
Переменные в этой функции имеют следующие значения:
MYBB_ROOT = E: \ wamp \ www \ mybb / source_url = http://www.theblaze.com/wp-content/uploads/2013/04/Screen-Shot-2013-04-29-at-7.41.26-AM.png target_file = E: \ wamp \ www \ mybb / images / topposts / thumbnails / thumb_13863.jpg thumb_file_name = thumb_13863.jpg
function tp_createThumb($source_url,$target_file, $thumb_file_name){
require_once MYBB_ROOT.'inc/plugins/topposts/phpthumb.class.php';
require_once MYBB_ROOT.'inc/plugins/topposts/phpThumb.config.php';
// create phpThumb object
$phpThumb = new phpthumb();
//download file
echo ("URL:".$source_url);
downloadFile($source_url, MYBB_ROOT.'inc\\plugins\\topposts\temp\\'.$thumb_file_name);
// set data source -- do this first, any settings must be made AFTER this call
$phpThumb->setSourceData(MYBB_ROOT.'inc\\plugins\\topposts\temp\\'.$thumb_file_name);
echo (' source:'.MYBB_ROOT.'inc\\plugins\\topposts\temp\\'.$thumb_file_name);
// PLEASE NOTE:
// You must set any relevant config settings here. The phpThumb
// object mode does NOT pull any settings from phpThumb.config.php
// set parameters (see URL Parameters in phpthumb.readme.txt)
$thumbnail_width = 100;
$phpThumb->setParameter('w', $thumbnail_width);
$phpThumb->setParameter('nohotlink_enabled', 'false');
$phpThumb->setParameter('config_output_format', 'jpeg');
$phpThumb->setParameter('zc', "C");
$phpThumb->setParameter('config_allow_src_above_docroot', true);
$phpThumb->setParameter('w', 200);
$phpThumb->setParameter('h', 100);
$phpThumb->setParameter('config_cache_disable_warning', true);
$phpThumb->setParameter('config_imagemagick_path', null);
$phpThumb->setParameter('config_prefer_imagemagick', false);
// generate & output thumbnail
if ($phpThumb->GenerateThumbnail()) { // this line is VERY important, do not remove it!
if ($phpThumb->RenderToFile($output_filename)) {
// do something on success
echo 'Successfully rendered to "'.$output_filename.'"';
} else {
// do something with debug/error messages
echo 'Failed bla:<pre>'.implode("\n\n", $phpThumb->debugmessages).'</pre>';
}
$phpThumb->purgeTempFiles();
} else {
// do something with debug/error messages
echo '<form><textarea rows="25" cols="100" wrap="off">'.htmlentities(implode("\n* ", $phpThumb->debugmessages)).'</textarea></form><hr>';
}
}
И вот ошибка вывода:
phpThumb () v1.7.11-201108081537 в файле "phpthumb.class.php" в строке 216 * setSourceData(), устанавливающий $this->rawImageData (58 байт; magic="E:\w" ( 0x45 0x3a 0x5c 0x77)) в файл "phpthumb.class.php" в строке 271 * file_exists() = 0 в файле "phpthumb.class.php" в строке 1165 * file_exists_ignoreopenbasedir() = 0 в файле "phpthumb.class.php" в строке 1166 * is_file() = 0 в файле "phpthumb.class.php" в строке 1167 * is_executable() = 0 в файле "phpthumb.class.php" в строке 1168 * Прерывание ImageMagickThumbnailToGD(), поскольку не удается найти преобразование в $this->config_imagemagick_path (), а также
which convert
return () в файле "phpthumb.class.php" в строке 1198 * $AvailableImageOutputFormats = array(text;ico;wbmp;gif;png;jpeg) в файле "phpthumb.class.php" в строке 923 * $this-> Для thumbnailFormat установлено значение $this->config_output_format "jpeg" в файле "phpthumb.class.php" в строке 934 * $this->thumbnailQuality установлено в значение "75" в файле "phpthumb.class.php" в строке 951 * ResolveSource() выход, потому что $ this-> rawImageData установлено (58 байт) в файле "phpthumb.class.php" в строке 847 * setCacheDirectory(), начиная с config_cache_directory = "E:\wamp\www\mybb/inc\plugins\topposts\temp\"в файле" phpthumb.class.php "в строке 958 * установка config_cache_directory в realpath(E:\wamp\www\mybb\inc\plugins\topposts\temp) = "E:\wamp\www\mybb\inc\plugins\topposts\temp"в файле" phpthumb.class.php "в строке 986 * SetCacheFilename() _raw, установленный из md5($this->rawImageData) = "9fcad44eb8ae21004afb1addf5f08404"в файле" phpthumb.class.php "в строке 3236 SetCacheFilename() _par, установленный из md5(_zcC_h100_w200_dpi150_q75) в файле "phpthumb.class.php" в строке 3273 * запуск ExtractEXIFgetImageSize() в файле "phpthumb.class.php" в строке 3035 * пропуск GetImageSize(), поскольку $this->sourceFilename пусто в файле "phpthumb.class.php" в строка 3047 * в обход секций EXIF и GetImageSize, поскольку установлено значение $ this-> rawImageData, а значение $this->sourceFilename не задано, а исходное изображение не слишком велико для GD (x=0 МБ) в файле "phpthumb.class.php". в строке 3065 * SetOrientationDependantWidthHeight(), начинающийся с ""x"" в файле "phpthumb.class.php" в строке 3014 * SetOrientationDependantWidthHeight(), устанавливающий w = "200", h = "100" в файле "phpthumb.class.php "в строке 3030 * exif_thumbnail () не существует, не может извлечь миниатюру EXIF в файле" phpthumb.class.php "в строке 3138 * Извлечение миниатюры EXIF: (size=0; тип =""; 0x0) в файле "phpthumb.class.php" в строке 3142 * начиная с SourceImageToGD() в файле "phpthumb.class.php" в строке 3400 * ImageCreateFromStringReplacement() вызывая встроенную функцию ImageCreateFromString() в файле "phpthumb.class.php" on line 3956 * SourceImageToGD.ImageCreateFromStringReplacement() завершился ошибкой с неизвестным типом изображения" E: \ w "(0x45 0x3a 0x5c 0x77) в файле" phpthumb.class.php "в строке 3443 * Не используются данные миниатюр EXIF, потому что $this->exif_thumbnail_data пуст в файле "phpthumb.class.php" в строке 3471 * $this->gdimg_source все еще пуст в файле "phpthumb.class.php" в строке 3523 * Сбой ImageMagickThumbnailToGD() в файле "phpthumb.class.php" по линии 3525 * phpThumb () v1.7.11-201108081537 http://phpthumb.sourceforge.net/Неизвестный тип изображения, идентифицированный как "E: \ w" (0x45 0x3a 0x5c 0x77) в SourceImageToGD() [3647] в файле "phpthumb.class.php" в строке 3847 * Ошибка SourceImageToGD() в файле "phpthumb.class.php" по линии 342
Я был над этим 5 часов (сейчас 6 утра) и просто не могу заставить его работать. Любая помощь будет оценена.
спасибо Эко
1 ответ
Удалось это исправить. Я думаю, что это была некоторая проблема с относительными путями.
Еще это регулярное выражение Im using here isn
не работает все время...
unction tp_createThumb($source_url,$target_file, $thumb_file_name){
require_once MYBB_ROOT.'inc/plugins/topposts/phpthumb.class.php';
require_once MYBB_ROOT.'inc/plugins/topposts/phpThumb.config.php';
echo(" MYBB_ROOT=".MYBB_ROOT." source_url=".$source_url." target_file=".$target_file." thumb_file_name=".$thumb_file_name);
// create phpThumb object
$phpThumb = new phpthumb();
//download file
echo ("URL:".$source_url);
downloadFile($source_url, MYBB_ROOT.'inc\\plugins\\topposts\temp\\'.$thumb_file_name);
// set data source -- do this first, any settings must be made AFTER this call
$phpThumb->setSourceData(file_get_contents(MYBB_ROOT.'inc/plugins/topposts/temp/'.$thumb_file_name));
//$phpThumb->setSourceData(file_get_contents(MYBB_ROOT.'inc/plugins/topposts/temp/thumb_13863.jpg'));
echo (' source:./topposts/temp/'.$thumb_file_name);
// PLEASE NOTE:
// You must set any relevant config settings here. The phpThumb
// object mode does NOT pull any settings from phpThumb.config.php
// set parameters (see URL Parameters in phpthumb.readme.txt)
$thumbnail_width = 100;
$phpThumb->setParameter('w', $thumbnail_width);
$phpThumb->setParameter('nohotlink_enabled', 'false');
$phpThumb->setParameter('config_output_format', 'jpeg');
$phpThumb->setParameter('zc', "C");
$phpThumb->setParameter('config_allow_src_above_docroot', true);
$phpThumb->setParameter('w', 200);
$phpThumb->setParameter('h', 100);
$phpThumb->setParameter('config_cache_directory','./topposts/temp/');
$phpThumb->setParameter('config_temp_directory', './topposts/temp/');
$phpThumb->setParameter('config_cache_disable_warning', true);
$phpThumb->setParameter('config_cache_disable_warning', true);
$phpThumb->setParameter('config_imagemagick_path', null);
$phpThumb->setParameter('config_prefer_imagemagick', false);
// generate & output thumbnail
if ($phpThumb->GenerateThumbnail()) { // this line is VERY important, do not remove it!
if ($phpThumb->RenderToFile($target_file)) {
// do something on success
echo 'Successfully rendered to "'.$target_file.'"';
} else {
// do something with debug/error messages
echo 'Failed bla:<pre>'.implode("\n\n", $phpThumb->debugmessages).'</pre>';
}
$phpThumb->purgeTempFiles();
} else {
// do something with debug/error messages
echo '<form><textarea rows="55" cols="120" wrap="off">'.htmlentities(implode("\n* ", $phpThumb->debugmessages)).'</textarea></form><hr>';
}
}