アップロードファイルフォームを作成しましたが、非常に奇妙なバグが表示されます...ファイルをアップロードすると、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データがここにあり、すべて正常に機能することです。