Ограничение отправляемых файлов по типу и размеру Новый

Дополнение: FormIt AjaxForm

Подскажите как можно задать ограничение при отправке файлов через форму (FormIt+AjaxForm) по размеру и типу файлов? И как вывести ошибку если файл не был загружен?

Сейчас код такого типа

<form class="" method="post" enctype="multipart/form-data">
    <div class="bodyform">
        <div class="mgroup">Прикрепите файл: <input type="file" class="file" name="file" value="[[+fi.file]] /></div>
        <div class="mgroup">Укажите эл.почту: <input id="fileEmail" class="form-control" type="email" name="fileEmail" value="[[+fi.fileEmail]]" /> <span class="error_fileEmail">[[+fi.error.fileEmail]]</span></div>
        <div class="mgroup"><button class="send" type="submit"> Отправить</button> </div>
    </div>
</form>
В форме всего 2 поля (Прикрепить файл и эл.почта)

[[!AjaxForm@?
  &snippet=`FormIt`
  &hooks=`spam,email`
  &emailSubject=`отправка файла`
  &emailTo=`[[++email]]`
  &emailFrom=`[[++email_noreply]]`
  &emailTpl=`file.email`
  &formFields=`fileEmail`  
  &fieldNames=`fileEmail==Эл.почта`
  &validate=`fileEmail:required`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено`
  &fileEmail.vTextRequired=`Вы не ввели адрес эл.почты!`
]]
03 августа 2016, 18:41    Сергей   
1    321 0

Комментарии (1)

  1. Владислав 04 августа 2016, 13:49 # 0
    Нужно написать сниппет который будет проверять отправленные файлы.

    $types = array('image/jpeg', 'image/png');
    if (!in_array($_FILES['file']['type'], $types)){
        echo 'Недопустимый тип файла.';
        return false;
    }
    как то так.

    Таким же образом проверить размер файла можно $_FILES['file']['size']

    Потом этот сниппет добавить первым в &hooks.

    Главное не забудь вернуть true если валидация прошла успешно.
    Вы должны авторизоваться, чтобы оставлять комментарии.