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

Запись файлов в переменную

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запись файлов в список

Также файлы можно отправить списком. Пользователь при отправке может выбрать все файлы и прислать их одним сообщением.

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

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

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

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

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

Переход будет на экран «Запись файлов в массив».

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

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

4. Добавьте Запись переменной, где в Значении будет выводиться {{new_file}}, в настройках выберите пункт «Добавить в конец или создать новый список и добавить в него».

5. Добавьте Алерт, в тексте которого, все присланные файлы будут выводиться таким образом:

 
    {{#each sos_all_files}}
    {{this}}
    {{/each}}

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

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

В начало ↑