带有文件

时间:2017-02-08 11:57:18

标签: forms file-upload symfony

我的编辑表单的文件小部件有问题。

the Symfony documentation中,在第一段末尾,它说:

  

创建表单以编辑已保留的项目时,文件表单   type仍然需要一个File实例。现在作为坚持的实体   只包含相对文件路径,首先必须连接   配置的上传路径包含存储的文件名并创建一个新的File类:

use Symfony\Component\HttpFoundation\File\File;

// ...

$product->setBrochure(
    new File($this->getParameter('brochures_directory').'/'.$product->getBrochure())
);

但是,即使我在我的表单上应用此功能,我的文件小部件仍会显示"没有选择文件" (如果我的翻译没问题)。 此外,由于总表单必须附加文件,因此用户必须再次附加文件。

如何设法显示文件已上传,并且只提供用另一个文件更新文件的机会?

编辑:相关SO帖子:Non blank file input field in Symfony2 form

1 个答案:

答案 0 :(得分:0)

您可以在表单中添加一个非映射字段,显示文件名甚至文件缩略图(您需要为其创建一个getter。) E.g

$builder->add('file_preview', 'text', array('label' => 'Existing File', 'required' => false, 'mapped' => false));

或者,如果您使用单个字段在树枝中显示表单,只需添加名称/预览 喜欢的东西;

<div class="my-form">
    <div class="{{ obj.file.name }}"</div>
    <div>{{ form_widget(form.file) }}</div>
</div>