Symfony Gaufrette — загрузите или прочитайте изображение из файловой системы и покажите его в виде веточки

мой вопрос прост. Я использую фреймворк Symfony и файловую систему Gaufrette (KnpGaufretteBundle) и уже сохранил файлы (изображения) в файловой системе.

Теперь я хочу показать что изображения в ветке. В контроллере я получаю файл:

$image = $filesystem->get($fie_key);

В переменной $ image есть Gaufrette \ File объект. Я хотел бы отобразить это изображение в ветке в <img> тег. Но я не знаю, как это сделать.
Спасибо за помощь

3

Решение

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>
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]