Как принять неопределенное количество файлов от пользователя

Бывают случаи, когда необходимо принять от пользователя различные файлы, но их количество неизвестно заранее. Решением такой задачи может быть цикл забора файлов и записи их в одну переменную.

1. Сначала настроим Кнопки с подсказками с кнопкой «Далее», на которую пользователь нажмет, когда загрузит все изображения.

2. После нужно перевести пользователя компонентом Перемотка на экран «Развилка».

3. На экране «Развилка» настраиваем компонент Развилка.

В первой Цели развилки Тип данных оставляем Текст, в значении цели пишем Далее, переход на экран «Алерт».

Во второй Цели развилки Тип данных меняем на Файл, задаем имя переменной sos_file. В эту переменную будут записываться файлы, которые пользователь отправит боту.

Переход будет на экран «Цикл».

Цель без значения с типом данных Файл (Цель 2) записывает в переменную sos_file файл, который прислал пользователь. Для этого в настройках Цели 2 в поле Имя переменной в которую Развилка запишет значение, мы уже указали имя переменной sos_file.

И одновременно Цель 2 переводит на экран «Цикл», где эта же картинка уже в виде переменной перезаписывается в общую переменную sos_all_files и возвращает пользователя компонентом Перемотка на предыдущий экран.

На экране «Цикл» в значении записи переменной укажем переменные:

{{sos_all_files}}{{\n}}{{sos_file}}

При этом, если пользователь загружает еще одну картинку, то она снова записывается и добавляется в общую переменную с новой строки. Так происходит до того момента, пока пользователь не нажмет кнопку «Далее».

Когда пользователь нажимает кнопку «Далее», то он переходит к отправке общей переменной, куда записаны все ссылки на изображения, которые он отправил.

Откройте изображение в новой вкладке, чтобы его увеличить.

В бот @notification_from_bot придут ссылки на все файлы, которые отправил пользователь.

В начало ↑

Была ли статья полезна?

Да Нет