galtsev.t, можно через валидатор, можно так: https://github.com/johncms/johncms/blob/2cbc6a3eabeaded34cd636ea112b7c17272ee4fd/modules/johncms/forum/src/Controllers/FilesController.php#L57-L58 Получаешь расширение, потом с помощью in_array проверяешь.
Через валидатор если, то будет примерно такое правило https://github.com/johncms/johncms/blob/develop/modules/johncms/admin/src/Forms/CreateUserForm.php#L99
Только можно будет юзать MimeType если это не картинки. Ну или проверка по расширению Extension.