В дополнение к статье «Использование форм в Open Constructor», расскажу об отправке писем с прикреплeнным файлом.
Создание HTML кода и настройка объекта описаны в той статье, поэтому не буду повторяться.
В качестве примера можно взять такую форму:

Чтобы создать этот код формы открываем во вкладке «Шаблоны» Разное / Включение шаблона, создаем шаблон и вписываем в него HTML код формы.
<tr>
<td valign="top"><b>Приложите файл с резюме</b></td>
<td>
<input name="attachment" class="bordered_1px" type="file"><br />
<span class="form">DOC, ODT или PDF, размер не более 500Кб</span>
{if $smarty.get.failed.attachment}
<div class="error">{$smarty.get.failed.attachment}</div>
{/if}
</td>
</tr>
Хочу обратить ваше внимание на то что, если форма отправляет письмо с прикрепленным файлом, нужно указать enctype в таге <form>:
<form action="/contact-us/submit/?cid={$cid}" method="post" enctype="multipart/form-data">
В объекте «Разное / Отправка писем» указываем несколько параметров.

В поле «Тип» выбираем значение File.
В поле «Тип файла» обязательно указываем расширения файлов, через запятую без пробелов, которые будут разрешены для отправки вместе с письмом, иначе вы не сможете закачать файл.
В поле «Размер» также обязательно указываем минимальный и максимальный размер отправляемого файла.
Ещe хочу обратить ваше внимание на чек-бокс в левом нижнем углу — если его отметить, загрузка файла пользователем сайта будет обязательна. То есть если вдруг посетитель сайта не укажет файл для отправки, попытается отправить файл с неразрешенным расширением или же файл не будет подходить по размерам, то будет показано сообщение из поля «Ошибка».
Реализовать отправку письма с несколькими прикрепленными файлами возможно 2 способами:
Первый способ
Создать HTML код с несколькими полями для прикрепления файлов и в объекте настроить их все по отдельности. Для этого в объекте отправки письма нажимаем кнопку «Добавить файл» и настраиваем его. Преимущество этого способа состоит в том, что можно настраивать каждый по-разному.
Второй способ
Объясним на примере. Необходимо вместе с сообщением отправить несколько идентичных файлов, но точное их количество неизвестно.

Как и в предыдущем примере описывать подробно создание HTML кода и настройку объекта не буду.
<div id=”attach”>
<p>Вы можете отправить нам дополнительную информацию о Вашем проекте.<br>
При желании Вы можете отправить 5 файлов. Размер каждого файла не должен превышать 1 MB.</p>
<div><input name="attachment[]" class="bordered_1px" type="file"></div>
<a href="javascript: addFile();" id="addmore" title="Добавить еще один файл">Добавить еще один файл</a>
</div>
Далее в объекте указываем все параметры. А в поле «Тип» выбираем значение Files. Это означает что в поле attachment нашей формы будет передан массив файлов.

Обратите внимание на то, что при выборе «Тип» Files поле с загрузкой файла нельзя сделать обязательным для заполнения.
Преимуществом данного способа является то, что можно закачать несколько файлов с одинаковыми характеристиками (размер, расширение), отвечающими всем требованиям настройки объекта.

Комментарии