我正在尝试制作一个构建滑块的表单。它可以有任意数量的图像,我想显示已经上传的图像的预览。设置多个图像区域非常简单,但我已经开始关注显示图像的预览。
我正在使用此模板渲染“滑块图像”字段:
{% block form_widget_simple %}
{% spaceless %}
<div class="form-widget slider">
{% set type = type|default('text') %}
{% if type == 'file' and value is not empty %}
<img src="{{ value }}" width="200"/><br/>
{% endif %}
<input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
</div>
{% endspaceless %}
{% endblock form_widget_simple %}
value
变量在file
输入类型上始终为空,因此我不确定如何获取上传图像的网址。我使用的是自定义字段类型,只需添加file
字段并挂接数据源(这只是Symfony\Component\HttpFoundation\File\File
周围的简单包装)。如果你需要这个代码让我知道,但它的所有样板材都让我怀疑你。
提前致谢。
答案 0 :(得分:6)
Symfony2 FileType没有值,它在buildView方法中被写入。 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Extension/Core/Type/FileType.php#L28
但您可以通过forms.vars.data
访问它 {% if type == 'file' and form.vars.data is not null %}
{# Here you should somehow generate url to file but let assume
you have it in "/path/to/file/" folder that is accessible through web server #}
<img src="/path/to/file/{{ form.vars.data.name }}" /><br/>
{% endif %}