我有一个扩展,我需要在其中生成缩略图。为此,我编写了一种包装函数。
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 目录的路径,此功能就可以正常工作:例如:../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() 进行了测试 - 它返回 true。
安装工具中的图像处理工作正常。
你有什么想法,我还能测试什么?还是我错过了一些重要的东西?
顺便说一句:我正在运行 TYPO3 4.6.1 和 PHP 5.3。
解决方案:
在 Web 目录中创建指向外部路径的符号链接。此符号链接必须位于 fileadmin/ 或typo3conf/ 中,
另请参阅 konsolenfreddy 的帖子。