我有一个扩展程序,需要在其中生成缩略图。
为此,我编写了一种包装函数。

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

但是,一旦我尝试使用如下所示的绝对系统路径,就不再生成任何图片,并且“返回$ cObj-> IMAGE($ imgTSConfig)”将返回NULL。
/var/www/vhosts/domain.com/httpdocs/path/to/picture/c.example.hq.jpg
该路径在TYPO3-Install-Directory之外-但包含在open_basedir中(并且safe_mode为Off)。

我在open_basedir中添加了以下路径:/var/www/vhosts/domain.com/httpdocs/path/
我用is_visible()测试了我的扩展名是否可读该文件-并且返回true。
安装工具中的图像处理工作正常。

您有什么想法,我还能测试什么?还是我缺少一些必不可少的东西?

顺便说一句:我正在运行TYPO3 4.6.1和PHP 5.3。

解:
在Web目录中建立到外部路径的符号链接。此符号链接必须位于fileadmin /或typo3conf /中
另请参见konsolenfreddy的帖子。

最佳答案

IMAGE函数将始终期望在PATH_sitetypo3conf中相对于fileadmin的文件(请参见getFilename中的t3lib_tstemplate函数)。

如果要在文档根目录之外放置图像,请注意两种方法:


将符号链接放在typo3conffileadmin内的目录中,例如fileadmin/myimages/,通过.htaccess保护目录内容
直接使用Gifbuilder函数。这可能很麻烦,并且可能会禁用cObject中的某些更高级别的缓存。

09-25 22:29