【问题标题】:symfony2 - file upload lost upon form errorsymfony2 - 表单错误导致文件上传丢失
【发布时间】:2015-01-03 16:50:36
【问题描述】:

我已经按照教程:http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html

但我在上传文件时遇到问题处理情况,但其他字段不符合验证条件,并指示用户修复表单错误。然后当用户修复问题并点击提交按钮时,他的表单中不再有有效的图像并显示丢失文件错误。

我准备了一个小示例项目来说明这种行为:

https://github.com/Jaslanin/sf_upload_form_error

重现此行为的步骤:

  1. 在浏览器中打开项目的 web/ 目录
  2. 在名称字段中输入字符串“123”
  3. 为文件字段设置图像文件
  4. 点击提交按钮
  5. 将名称字段更改为“123456”
  6. 点击提交按钮
  7. 观察表单缺少文件错误

目前,我使用“如何使用 Doctrine 处理文件上传”教程中的步骤处理了这个问题,但没有使用生命周期回调。我手动运行 -> 上传,以防会话内出现错误存储文件路径。

它有效,但我正在为该问题寻找更清洁的解决方案。

【问题讨论】:

    标签: php forms symfony doctrine-orm


    【解决方案1】:

    当您在页面上呈现表单时,所有输入字段都填充有来自实体或数组的值。这里的关键点是您没有数据可以预填充文件输入字段。所以它呈现为空输入。当用户在第 6 步点击提交时,没有选择/上传文件。在这种情况下,具有会话存储上传文件路径的解决方案是正确的解决方案。 我还建议您向用户展示,当会话中有一个文件时,一些文件已经提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-20
      • 2014-04-16
      • 2015-09-17
      • 1970-01-01
      • 2018-10-02
      • 2013-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多