jay*_*ayv 7 php forms file-upload symfony
我正在构建一个复杂的文件上传表单.此表单包含普通数据和一组4种文件类型,每种类型可能有多个文件上载.
UploadedFile实体有文件名,描述等.
使用案例:现在,我正在提交包含4张照片和2份报告的表单,所有6个文件都可以.但是表单中还有一些其他错误.但我想再次显示上传的文件,以便用户不必再次重新上载它们.这些文件已经保留,因此当我使用GET返回同一页面时,文件会正确显示.
我已经做过/尝试过的事情:
这一切都很好,但是因为我在绑定之后更改了我的报告和附件,所以在帖子之后显示的数据无法更改.我无法在提交的表单上执行setData($ report).
因此,现有文件不再显示,因为表单数据仍然是旧的报表对象(来自帖子).
当我执行页面的正常GET时,将从数据库中检索$ report并正确显示.但是在已经上传文件的POST之后,数据库数据是正确的,但是表单视图不知道有关已更改数据的任何信息(在绑定之后).
有任何想法吗?或者更好的方法吗?
好吧,经过几天的尝试和错误,我找到了一个匹配的解决方案。
简而言之,这就是我所做的。
在 UploadedFile 实体中,我添加了 2 个新字段:file和uniqueId。这些字段未映射到 ORM 中,因为我只需要在表单中使用它们。
提交表单时,我在特定会话变量中添加新上传的文件,并为它们分配一个唯一的 ID(因为我需要能够删除它们并且需要一个标识符)。我还将文件上传到新位置。
如果表单有效,我会将在会话中保存的集合添加到保存该集合的实体中。
如果表单无效,则会显示文件,因为我从会话中检索了此特定集合。即使当我使用 GET 重新访问该页面时,也会显示所有上传的文件。
如果我删除视图中的文件,我会将已删除的唯一 ID 的列表放入输入字段中。因此,在提交后,我检查应该从数组中删除哪些文件。
我认为我的答案和我的问题一样不清楚:)
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |