我的问题很简单。我使用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 GaufretteFilesystem;
use GaufretteFile;
use GaufretteAdapterLocal 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>