Custom validation
If you need implement specific file upload validation rules remember to look at the documentation for the Sirius\Validation library.
For example if you have a system where the users have upload quotas and you want to make sure that they don't exceed their allocated quota you ca do the following
function check_user_quota($file) {
return User::instance()->getRemainingQuota() < $file['size'];
}
$uploadHandler->addRule('callback', array('callback' => 'check_user_quota'), 'Sorry, but you don\'t have enough space to upload this file');
Use a custom validator
You can inject a Sirius\Validation\ValueValidator
upon construction. The example below assumes there is a dependency injection container.
$ruleFactory = $container->get('Sirius\Validation\RuleFactory');
$ruleFactory->register('quota_is_met', 'MyApp\Validation\Rule\FileQuota');
$valueValidator = $container->get('Sirius\Validation\ValueValidator');
$handler = new Sirius\Upload\Handler('/path/to/dir', array(), $valueValidator);
$handler->addRule('quota_is_met');