Проверка file со стороны сервера перед отправкой письма
Добрый день, не могу ни как разобраться почему у меня не до конца срабатывает условие. Вроде как делаю все по документации formit
создал валидатор «checkfile»
создал валидатор «checkfile»
<?php
$output = true;
$maxFileSize = 50 * 1024 * 1024;
$fileName = $_FILES[$key]['name'];
$fileSize = $_FILES[$key]['size'];
if ($fileName != '') {
if($fileSize > $maxFileSize) {
$validator->addError($key,'Размер файла превышает 50 Мб.');
$output = false;
}
}
return $output;
вызываю форму [[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.AjaxForm.example`
&hooks=`email`
&customValidators=`checkfile`
&emailSubject=`Сообщение с сайта [[++site_name]]`
&emailTo=`[[++emailsender]]`
&validate=`name:required,email:required,phone:required,files:checkfile`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]
и вот чанк самой формы<form action="" class="ajax_form af_example" enctype="multipart/form-data">
<div class="left">
<div class="group">
<input type="text" name="name" value="[[+fi.name]]" placeholder="Имя">
<span class="error_name">[[+fi.error.name]]</span>
</div>
<div class="group">
<input type="phone" name="phone" value="[[+fi.phone]]" placeholder="Телефон">
<span class="error_name">[[+fi.error.phone]]</span>
</div>
<div class="group">
<input type="email" name="email" value="[[+fi.email]]" placeholder="Электронная почта">
<span class="error_name">[[+fi.error.email]]</span>
</div>
<input type="file" id="file" name="files" value="[[+fi.files]]">
<label for="file" class="file">
<p>Прикрепить файл</p>
<p>не более 50 мб</p>
</label>
<p class="error_files">[[+fi.error.files]]</p>
</div>
<div class="right">
<textarea name="text" placeholder="Сообщение"></textarea>
<div class="range-slide">
<p class="title">Ваш бюджет</p>
<div id="slider" data-min="35000" data-max="400000"></div>
<div class="numbers">
<span id="input-with-keypress-2"></span>
<p>–</p>
<span id="input-with-keypress-3"></span>
<input type="text" id="input-with-keypress-0" name="price_from" value="1000000">
<input type="text" id="input-with-keypress-1" name="price_to">
</div>
</div>
<button type="submit">Отправить</button>
<p>Нажимая на кнопку «Связаться», я даю согласие на обработку персональных данных, как описано в «<a href="#">Соглашении об использовании сайта</a>»</p>
</div>
[[+fi.success:is=`1`:then=`
<div class="alert alert-success">[[+fi.successMessage]]</div>
`]]
[[+fi.validation_error:is=`1`:then=`
<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
`]]
</form>
при отправки формы с файлом превышающим 50мб поля становиться не активными и больше ни чего не происходит, сообщение об ошибке не выскакивает. Подскажите пожалуйста что я сделал не так) Комментарии: 1
Кажется я понял, это сильно большой файл, а что бы его проверить сервер его сначала скачивает и по этому предупреждение срабатывает через большой промежуток времени. Если это действительно так, возможно ли как то это ускорить?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.