У меня есть расширение, в котором мне нужно создавать миниатюры. Для этого я написал некую функцию-обертку.
public static function pictureGenerator($file, $title, $size_w, $size_h) {
$cObj = t3lib_div::makeInstance('tslib_cObj');
$imgTSConfig = array();
$imgTSConfig['file'] = $file;
$imgTSConfig['file.']['width'] = $size_w . 'm';
$imgTSConfig['file.']['height'] = $size_h . 'm';
$imgTSConfig['altText'] = empty($title) ? 'preview' : $title;
$imgTSConfig['titleText'] = empty($title) ? 'preview' : $title;
return $cObj->IMAGE($imgTSConfig);
}
Эта функция работает нормально, если я использую путь относительно TYPO3-Directory: Например: ../typo3conf/ext/sd_filmbase/res/images/default_film.jpg
Но как только я пытаюсь использовать абсолютный системный путь, подобный приведенному ниже, изображение больше не создается, и "return $ cObj-> IMAGE ($ imgTSConfig)" возвращает NULL.
/ var / www / vhosts / domain.com / httpdocs / path / to / picture / c.example.hq.jpg
Этот путь находится за пределами TYPO3-Install-Directory, но включен в open_basedir (а safe_mode выключен) .
Я добавил следующий путь к open_basedir: /var/www/vhosts/domain.com/httpdocs/path/
И я проверил с помощью is_readable (), читается ли файл из моего расширения - и он вернул истину.
Обработка изображений в Install Tool работает нормально.
Ты хоть представляешь, что еще я могу протестировать? Или мне не хватает чего-то важного?
Кстати: я использую TYPO3 4.6.1 и PHP 5.3.
РЕШЕНИЕ:
Создайте символическую ссылку в веб-каталоге на внешний путь. Эта символическая ссылка должна находиться либо в fileadmin /, либо в typo3conf /
См. Также сообщение konsolenfreddy.