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())
    {
      [...]
    }
    [...]
  }

私のリクエスト(firebugでデバッグ):

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はnullを返します。

/etc/php5/apache/php.iniのphp.iniを次のように構成しました。

file_uploads=オン

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 に答える