我已经按照教程:http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html
但是当我上传文件时遇到问题处理情况,但是其他字段不符合验证标准,并且用户被指示修复表单错误。然后,当用户修复问题并点击提交按钮时,他不再拥有表单中的有效图像,并显示丢失的文件错误。
我准备了一个小示例项目来说明这种行为:
https://github.com/Jaslanin/sf_upload_form_error
重现此行为的步骤:
现在我使用“如何使用Doctrine处理文件上传”教程中的步骤来处理此问题,但不使用lifecyclecallbacks。我运行 - >手动上传,如果会话中存在错误存储文件路径。
它有效,但我正在为这个问题寻找更清晰的解决方案。
答案 0 :(得分:1)
在页面上渲染表单时,所有输入字段都填充了实体或数组中的值。这里的关键是你没有数据来预先填充文件输入字段。所以它呈现为空输入。当用户点击步骤6提交时,没有选择/上传文件。在这种情况下,具有会话存储的上载文件路径的解决方案是正确的解决方案。 我还建议您向用户显示,当会话中有一个文件已经提交时。