2011-12-17 66 views
4

我有一个扩展,我需要生成缩略图。 为此,我写了一种包装函数。TYPO3:cObj->图像不生成图像

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

但只要我尝试使用如下所示的绝对系统路径,不再生成图片,并且“返回$ 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()如果该文件是从我的分机可读测试 - 它返回真。
安装工具中的图像处理工作正常。

你有什么想法,还有什么我可以测试?或者我错过了一些重要的东西?

btw:我正在运行TYPO3 4.6.1和PHP 5.3。

解决方案:
在Web目录内建立一个符号链接到外部路径。此符号链接必须位于fileadmin /或typo3conf/
中请参阅konsolenfreddy的帖子。

+0

什么是错误? – Bytemain 2011-12-17 10:13:51

+0

我没有得到任何错误 - 返回$ cObj-> IMAGE($ imgTSConfig)只返回NULL – Stefan 2011-12-17 10:33:29

回答

1

IMAGE功能将永远是相对的文件预计PATH_site无论是在typo3conffileadmin(见t3lib_tstemplategetFilename功能)。

如果您希望您的文档根目录以外的图像,两种方式浮现在脑海中:

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