Ограничение отправляемых файлов по типу и размеру
Подскажите как можно задать ограничение при отправке файлов через форму (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=`Вы не ввели адрес эл.почты!`
]]
Комментарии: 1
Нужно написать сниппет который будет проверять отправленные файлы.
Таким же образом проверить размер файла можно $_FILES['file']['size']
Потом этот сниппет добавить первым в &hooks.
Главное не забудь вернуть true если валидация прошла успешно.
$types = array('image/jpeg', 'image/png');
if (!in_array($_FILES['file']['type'], $types)){
echo 'Недопустимый тип файла.';
return false;
}
как то так.Таким же образом проверить размер файла можно $_FILES['file']['size']
Потом этот сниппет добавить первым в &hooks.
Главное не забудь вернуть true если валидация прошла успешно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.