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

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


1
请检查您的请求文件包。$request->files->all() - guy_fawkes
2
还要检查帖子的最大和上传的最大限制。 - Ramesh
var_dump( $request->files->all() ) 给出了“数组为空”的错误信息,这真的很令人困惑! - Andrew Battye
2
谢谢Ramesh - 是"post_max_size" - 在php.ini中设置为8M,而文件是9MB!我以为会收到错误消息,而不是所有的POST数据都消失了。 - Andrew Battye
3个回答

3

我曾经遇到过类似的情况,解决方法是增加最大POST请求大小(post_max_size)。


2

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

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


0

你应该这样调用表单:

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

如果你使用Twig


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接