我创建了一个上传文件表单,但出现了一个非常奇怪的错误......当我上传文件时,symfony 看不到 POST 参数。
我的表单类:
class UploadDocumentForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', 'text', array(
'label' => 'Nom'
));
$builder->add('file', 'file', array(
'label' => 'Fichier'
));
}
public function getName()
{
return 'upload_document_form';
}
}
我的模板:
<form action="{{ path('upload_file') }}" enctype="multipart/form-data" method="post">
{{ form_widget(upload_file_form) }}
<input type="submit" value="Envoyer le fichier" />
</form>
我的控制器操作方法:
public function uploadAction(Request $request)
{
$form = $this->createForm(new UploadDocumentForm(), new Document());
$form->bind($request);
if ($form->isValid())
{
[...]
}
[...]
}
我的要求(用萤火虫调试):
upload_document_form[name] blablabla
upload_document_form[file] ID3����TRCK������03/12TIT2[...]
upload_document_form[_token] bb5f9925002dafbab[...]
我在 symfony 调试工具栏中的请求:
请求 POST 参数
无 POST 参数
如果我做一个:
die(var_dump($request->get($form->getName())));
$request 返回空值。
我已经将 /etc/php5/apache/php.ini 的 php.ini 配置为:
文件上传 = 开
upload_max_filesize = 100M
max_file_uploads = 28
所以,很自然,我的表格是无效的。最奇怪的是,如果我上传一个小文件(~ 4Mo 以下),POST 数据就在这里,一切正常!