Symfony Gaufrette - 从文件系统下载或读取图像并以树枝形式显示

时间:2015-02-21 14:50:28

标签: php file symfony twig gaufrette

我的问题很简单。我使用Symfony框架和Gaufrette文件系统(KnpGaufretteBundle),我已经在文件系统中保存了文件(图像)。

现在我想在树枝上显示图像。在控制器中我得到文件:

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

在变量$ image中是 Gaufrette \ File 对象。我想在<img>标签中的树枝中显示该图像。但我不知道该怎么做。 谢谢你的帮助

1 个答案:

答案 0 :(得分:-1)

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>