使用某些文件提交表单时,Symfony2 POST数据为空

时间:2014-03-13 11:59:28

标签: php forms symfony

我有一个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。

3 个答案:

答案 0 :(得分:3)

我有类似的情况,通过增加最大POST请求大小(post_max_size)来解决。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

您应该像这样调用表单:

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

如果您使用Twig