symfonyのパブリックディレクトリはyour_project/web
です。そこでプライベートファイルをアップロードする必要はありません。代わりに、それらを特定のプライベートフォルダにアップロードすることができます。
以下の例では、ファイルをyour_project/Resources/private/uploads/images
フォルダにアップロードし、twigで配信することができます。画像の提供に関しては、古典的なやり方とは少し異なります。 BinaryFileResponse
というイメージを返すルートを作成し、あなたの小枝に表示します。
私はここだけの重要な部分を掲示していますが、あなたはここに完全な例を見ることができます:Uploading images to a private directory and serving them in twig template
注:あなたはいつもどのように作品を以下のルート方法を変更することができます。たとえば、name
パラメータはハッシュなどとなります。
サーバのイメージを制御するコントローラアクション。小枝はこれを呼び出します。
/**
* @param string $name
*
* @Method({"GET"})
* @Route("/{name}", name="image_show")
*
* @return Response
*/
public function showAction($name)
{
$response = new BinaryFileResponse($this->imageUploadPath.'/'.$name);
$response->trustXSendfileTypeHeader();
$response->setContentDisposition(
ResponseHeaderBag::DISPOSITION_INLINE,
$name,
iconv('UTF-8', 'ASCII//TRANSLIT', $name)
);
return $response;
}
これは画像を表示する部分です。 images
変数は、indexAction()
から得られます。これは完全な例で見ることができます。重要な部分は{{ path('image_show', {'name': image}) }}
です。上記のアクションを呼び出します。
{% for image in images %}
<img src="{{ path('image_show', {'name': image}) }}" />
{% else %}
<em>No image found.</em>
{% endfor %}
ありがとうございます。私はそれを試してみます – sheff2k1