2016-03-22 11 views
0

私は、Symfony Componentsから独自のフレームワークを構築する方法について、Fabien Potencierの記事を読んでいます。Symfony Requestオブジェクト - ファイル - エラー定数のアップロード

$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals(); 

私は、RequestオブジェクトがPHPスーパーグローバルの代わりに使用できると考えました。しかし、ファイルをアップロードしたときにエラーが発生すると(つまり、空のファイルのアップロード)、エラー情報は含まれません。ここで

が$ _FILES配列の出力である、それはここでは、エラーコード

Array 
(
    [inputIndex] => Array 
     (
      [name] => Array 
       (
        [3] => 
       ) 

      [type] => Array 
       (
        [3] => 
       ) 

      [tmp_name] => Array 
       (
        [3] => 
       ) 

      [error] => Array 
       (
        [3] => 4 
       ) 

      [size] => Array 
       (
        [3] => 0 
       ) 

     ) 

) 

が含まれている$の場合$ requestオブジェクト

Array 
(
    [inputIndex] => Array 
     (
      [3] => 
     ) 

) 

の出力のリクエストオブジェクトを_FILES多くの情報を失う。それは要求オブジェクトのどこにでも含まれていますか? Symfonyはこれをどのように扱いますか?

答えて

1

リクエストオブジェクトの目的は、リクエストデータを保持し、それを検証することではありません。あなたが検証を行いたい場合は(あなたはどこか、単純なPHPオブジェクトを要求データを保存するとされていない場合、エンティティ)、オブジェクトを作成し、同様に、オブジェクトへ$_FILESの内容を設定します。

$model->setFile($request->files->get('fileFormInputName')); 

と使用validator componentFile constraintを使用してファイルを検証します。 送信された添付ファイルがある場合、$request->files->get('fileFormInputName')instanceof Symfony\Component\HttpFoundation\File\UploadedFileになります。

私はあなたの質問にお答えしたいと思います。

関連する問題