мой вопрос прост. Я использую фреймворк Symfony и файловую систему Gaufrette (KnpGaufretteBundle) и уже сохранил файлы (изображения) в файловой системе.
Теперь я хочу показать что изображения в ветке. В контроллере я получаю файл:
$image = $filesystem->get($fie_key);
В переменной $ image есть Gaufrette \ File объект. Я хотел бы отобразить это изображение в ветке в <img>
тег. Но я не знаю, как это сделать.
Спасибо за помощь
Gaufrette — это библиотека абстракций файловой системы, которая, похоже, не реализует какие-либо параметры маршрутизации для файлов.
Первый вариант — создать публичный маршрут для вашей файловой системы Gaufrette и получить доступ к файлам, как упомянуто @Broncha.
Другой вариант есть;
Вы можете использовать кодировку Base64 для отображения изображений в шаблоне, не передавая URL-адрес изображения.
Для e.q
<?php
require_once('vendor/autoload.php');
use Gaufrette\Filesystem;
use Gaufrette\File;
use Gaufrette\Adapter\Local as LocalAdapter;
$adapter = new LocalAdapter('files');
$filesystem = new Filesystem($adapter);
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array(
'cache' => 'tmp',
));
//Probably the top part is redundant for you
//I've just set up a local twig and Gaufrette environment.
$file_key = "shareimage.png";
$file = $filesystem->get($file_key);
echo $twig->render('index.html', array('imageContent' => "data: ".$file->getMtime().";base64,".base64_encode($file->getContent())));
Это простой файл шаблона;
<html>
<body>
<img src="{{imageContent}}" alt="Image" />
</body>
</html>
Других решений пока нет …