<input type="file" name="image_file[]" multiple="multiple" />
でアップロードされる複数ファイルをInputFilterを生成してバリデートしたいのですが方法を教示いただけますでしょうか。
たとえば
・必須
・最大3つまでのアップロードを受け付ける
・画像ファイルのみ許可
という想定で、
$factory = new \Zend\InputFilter\Factory(); $inputFilter = $factory->createInputFilter( array( 'name'=>'image_file', 'validators'=>array( array( 'name'=>'fileuploadfile', 'options'=>array( 'messages'=>array(/*省略*/), 'break_chain_on_failure'=>true ) ), array( 'name'=>'filecount', 'options'=>array( 'min'=>1, 'max'=>3, 'messages'=>array(/*省略*/), 'break_chain_on_failure'=>true ) ), array( 'name'=>'fileisimage', 'options'=>array( 'messages'=>array(/*省略*/), 'break_chain_on_failure'=>true ) ) ) 'allow_empty'=> false, 'continue_if_empty'=> false ) ); ```のようにフィルタを定義しましたが ```ここに言語を入力 $inputFilter->setData($this->params()->fromFiles()) ```だとZend\Validator\Exception\InvalidArgumentExceptionがスローされ ```ここに言語を入力 $inputFilter->setData($_FILES) ```だと'Unknown error while uploading file'というバリデーションエラーになりいずれもうまくいきません。 またZend_Validator_File_Countは ```ここに言語を入力 Warning: dirname() expects parameter 1 to be string, array given in vendor\zendframework\zend-validator\src\File\Count.php on line 209 ```という警告が発生し、こういう用途に使えるものではないようにも見えるのですが だとするとこういうケースでアップロード可能なファイル数のバリデートはどうすれば良いでしょうか。
あなたの回答
tips
プレビュー