2016-11-24 25 views
0

私はSymfonyで新しく、問題は単純です。特定のディレクトリから画像を読み込んで、それを小枝に表示することはできません。私はこのアップロードフォルダーを私のSymfonyプロジェクトのルートディレクトリ(Webフォルダーの外)に置いています。このフォルダは、Linuxファイルシステムを介した他のVMへのリンクであり、オリジナルのアップロードフォルダを持っています。私はそれがPHPのSymfony 2のルートディレクトリフォルダから画像を読み込む方法は?

file_exists('/var/www/html/<projname>/upload/somefolder/image.png'); 

を使用して存在しているかどうかを確認しようとしたのだが、画像が存在することを示しているが、私は小枝で画像を表示しようとしているとき、それは常に404エラーが見つからなかっ示し、画像ではありません表示します。この状況に対処symfonyどのよう

<img src="/var/www/html/<projname>/upload/somefolder/image.png" /> 

<img src="/upload/somefolder/image.png" /> 

:私はすでにこれをやってきましたか?

答えて

0

ルートディレクトリのパスを取得したい場合は、以下のコードを試してみてください。 Hereは、ファイルをアップロードするための最良の例です。

$this->get('kernel')->getRootDir() . '/../web' . $this->getRequest()->getBasePath(); 

thisもお手伝いできます。

+0

ありがとう:

cd /var/www/html/<projname>/ ln -s upload web/upload 

今、あなたは、単にあなたの資産になどを参照することができます。私は、この画像キャッシュバンドルhttp://symfony.com/doc/current/bundles/LiipImagineBundle/introduction.htmlが画像のレンダリングに役立つことに気付きました。 –

+0

@KevinNicolliCunanan symfonyの旧バージョン用です! – Tiger

+0

@Tigerこれは当てはまりませんが、LiipImagingeBundleはsymfony 2.3以降とsymfony 3.0以上で動作します。 –

0

私はasset()を使用することをお勧めし(https://symfony.com/doc/current/templating.html#templating-assetsを参照)が、これはまた、(組み合わせて)はsymfonyとウェブサーバがアクセスすることができるようなプロジェクトウェブ/ -directoryの下にフォルダを配置する必要があります。

Linuxを使っているので、それはそのように簡単です:答えのための

{{ asset('upload/somefolder/image.png') }} 
関連する問題