1

我创建了一个上传文件表单,但出现了一个非常奇怪的错误......当我上传文件时,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 数据就在这里,一切正常!

4

1 回答 1

2

ficuscr评论是正确的:我需要在我的 php.ini 配置文件中配置post_max_size 。

于 2013-03-26T19:39:51.427 回答