2011-12-17 20 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

しかし、以下のような絶対的なシステムパスを使用しようとすると、画像はもう生成されず、 "return $ cObj-> IMAGE($ imgTSConfig)"はNULLを返します。
/var/www/vhosts/domain.com/httpdocs/path/to/picture/c.example.hq.jpg
このパスは、TYPO3インストールディレクトリの外にある - しかし、open_basedirの中に含まれている(とセーフモードがありますオフ)。

私は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

+0

私はエラーを返さない - $ cObj-> IMAGE($ imgTSConfig)を返すだけでNULLを返します – Stefan

+0

私は上記のあなたの説明に誤りがあることを意味します。あなたは文章を開始しますが、すぐに私は絶対パスを使いますが、あなたはそれを終わらせることはありません。 – Bytemain

答えて

1

IMAGE関数は常にtypo3confまたはfileadminに(t3lib_tstemplategetFilename機能を参照)のいずれかPATH_siteへのファイルの相対的なことを期待します。

ドキュメントルートの外にイメージを持っているしたい場合は、2つの方法が頭に浮かぶ:

  1. は、例えば、typo3confまたはfileadmin内のディレクトリにシンボリックリンクを置きますfileadmin/myimages/、ディレクトリの内容を保護する.htaccess
  2. Gifbuilder機能を直接使用してください。これは面倒であり、cObjectでより高いレベルのキャッシングを無効にする可能性があります。
+0

私は本当に奇妙なCore-Error-Handler-Messageを手に入れました。 file_exists()のopen_basedirの制限については、PHPのopen_basedir-Configurationにはすでに作成したシンボリックリンクのdestination-pathが含まれています。 Web-Rootに「サムネイル」というディレクトリを作成し、その中に2つのシンボリックリンクを外部フォルダに配置しました。また、ブラウザからの要求にもアクセスできるので、シンボリックリンクや特権はOKであるはずです。 – Stefan

+0

さて、IMAGE()がまったく動作しないことがわかりました。ローカルピクチャがそのまま返されたのはちょうど運が良かった。 – Stefan

+0

解決済み!どうもありがとう!問題は、ファイルがtypo3conf /またはfileadmin /内になければならないということでした。他のディレクトリは(私の場合のように)動作しないかもしれません。 – Stefan

関連する問題