我有一个扩展程序,我需要生成缩略图。 为此,我写了一种包装函数。
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_readable()进行测试 - 它返回true
安装工具中的图像处理工作正常。
你有什么想法,我还能测试什么?或者我错过了一些必要的东西?
是的:我正在运行TYPO3 4.6.1和PHP 5.3。 SOLUTION:
在Web目录中创建一个符号链接到外部路径。这个符号链接必须在fileadmin /或typo3conf /
中
另见konsolenfreddy的帖子。
答案 0 :(得分:1)
IMAGE
函数始终指向PATH_site
或typo3conf
中相对于fileadmin
的文件(请参阅getFilename
中的t3lib_tstemplate
函数)
如果您想在文档根目录之外放置图像,可以考虑两种方式:
typo3conf
或fileadmin
内的目录中,例如fileadmin/myimages/
,通过.htaccess
cObject
中禁用某些更高级别的缓存。