バリデートルールは以下に記載されています。
http://cakephp-upload.readthedocs.io/en/latest/validation.html
CakePHPにもデフォルトでuploadedFileのバリデートがありますが、使いづらいため、Josegonzalez/Upload のバリデートを使うと良さそうです。
/** * Default validation rules. * * @param \Cake\Validation\Validator $validator Validator instance. * @return \Cake\Validation\Validator */ public function validationDefault(Validator $validator) { // バリデータにプロバイダーを追加 $validator->setProvider('upload', 'Josegonzalez\Upload\Validation\DefaultValidation'); $validator ->add('image', [ 'uploadedFile' => [ 'rule' => ['uploadedFile', ['types' => ['image/jpeg','image/png','image/gif']]], 'last' => true, 'message' => 'gif , jpeg , png のみアップロード可能です。' ] ]) ->add('image', 'fileUnderPhpSizeLimit', [ 'rule' => 'isUnderPhpSizeLimit', 'message' => 'ファイルサイズが大きすぎます。', 'provider' => 'upload' ]) ->add('image', 'fileUnderFormSizeLimit', [ 'rule' => 'isUnderFormSizeLimit', 'message' => 'ファイルサイズが大きすぎます。', 'provider' => 'upload' ]) ->add('image', 'fileAboveMinHeight', [ 'rule' => ['isAboveMinHeight', 200], 'message' => '画像ファイルは少なくとも 200px 以上の高さのものにしてください。', 'provider' => 'upload' ]) ->add('image', 'fileBelowMaxHeight', [ 'rule' => ['isBelowMaxHeight', 2000], 'message' => '画像ファイルは少なくとも 2000px 以下の高さのものにしてください。', 'provider' => 'upload' ]) ->add('image', 'fileAboveMinWidth', [ 'rule' => ['isAboveMinWidth', 200], 'message' => '画像ファイルは少なくとも 200px 以上の幅のものにしてください。', 'provider' => 'upload' ]) ->add('image', 'fileBelowMaxWidth', [ 'rule' => ['isBelowMaxWidth', 2000], 'message' => '画像ファイルは少なくとも 2000px 以下の幅のものにしてください。', 'provider' => 'upload' ]); return $validator; }