【问题标题】:Symfony2 POST data empty when form is submitted with certain files提交带有某些文件的表单时,Symfony2 POST 数据为空
【发布时间】:2014-04-18 03:33:19
【问题描述】:

我有一个 Symfony2 表单,旨在接受上传的 (xml) 文件并将其与实体相关联。与之关联的实体是从 Select 元素中选择的,因此在提交表单时其 ID 包含在 POST 数据中。

一切都很顺利,但是当我尝试上传一个特定的 xml 文件时,Symfony 声称 POST 数据是空的 - 因此出现错误,因为它找不到与上传相关联的实体。

如果我这样做,在我处理表单提交的控制器操作中;

var_dump($request->request->all());

返回“数组:空”

如果我打开 Symfony 调试栏,它会说:

Request POST Parameters
No POST parameters 

但是,当我在 Firebug 中监控请求时,我可以看到 POST 数据,这正是我所期望的。那么,POST 数据到哪里去了?

顺便说一下,我使用的是 Symfony 2.3.9。如果重要的话,所有 XML 文件都是有效的 XML。

【问题讨论】:

  • 检查您的请求文件包。 $request->files->all()
  • 同时检查帖子上限和上传上限。
  • var_dump( $request->files->all() ) 给出“数组为空” - 非常混乱!
  • 感谢 Ramesh - 它是“post_max_size” - 在 php.ini 中设置为 8M,文件为 9MB!我以为我会收到一条错误消息,而不是所有 POST 数据都消失了。

标签: php forms symfony


【解决方案1】:

我遇到了类似的情况,通过增加最大 POST 请求大小 (post_max_size) 解决了这个问题。

【讨论】:

    【解决方案2】:

    很可能与PHP.ini 设置和您的最大上传大小有关。

    我遇到了类似的情况,超过 8 MB 的文件(您可以根据需要更改的默认值)在 $request->files 中找不到,并且不会触发错误消息。

    【讨论】:

      【解决方案3】:

      你应该这样调用表单:

      <form action="{{ path('form_submit') }}" method="post" {{ form_enctype(form) }}>
      

      如果你使用 Twig

      【讨论】:

        猜你喜欢
        • 2021-10-15
        • 1970-01-01
        • 2019-12-02
        • 1970-01-01
        • 2014-07-03
        • 2014-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多