18. Звуковые файлы и вложения

Всё, что абонент слышит, лежит файлами. Файл может принадлежать сценарию — тогда он загружается из редактора и закрепляется сохранением. А может лежать в общих файловых разделах сервера, и тогда сценарий адресует его путём. Оба способа разбираются здесь.

Поле файла

Поле выбора файла
Figure 1. Строка «Файл» в свойствах

Поле файла узнаётся по кнопке : имя выбранного файла в строке, окно выбора — за кнопкой.

Окно выбора

Пустой список вложений
Figure 2. Окно выбора файла: вложений пока нет

Две вкладки, и они соответствуют двум способам адресовать файл.

Файл сценария

вложение, хранящееся вместе со сценарием. Загружается отсюда же.

Вычисляемый путь

путь к файлу где-то в файловых разделах сервера. Собирается во время выполнения.

Список — это вложения этого сценария. У нового сценария он пуст, и это нормально: файлы появляются по мере загрузки.

Загрузка

Кнопка Загрузить новый открывает обычное окно выбора файла на вашей машине. Ограничения по расширению и типу задаёт свойство: где ждут звук, таблицу выбрать не дадут, и редактор скажет об этом до отправки.

Список с загруженным файлом
Figure 3. Файл загружен и выбран

Загруженный файл сразу становится выбранным. Слева от имени — треугольник: звуковые файлы (WAV и MP3) можно прослушать не выходя из окна. Справа — Удалить.

Загруженный файл живёт во временном хранилище до конца соединения. Закрепляет его на сервере только сохранение сценария.

Если закрыть вкладку, не сохранив, файл придётся загружать заново — браузер об этом предупредит. Технический обрыв связи с переподключением безопасен: там сохранность обеспечивает сервер.

Правило простое: загрузили файлы — сохраните сценарий.

Если при сохранении какие-то файлы закрепить не удалось, редактор назовёт их поимённо и попросит сохранить ещё раз.

Удаление вложения

Удалить рядом с именем убирает файл из сценария. Перед этим редактор скажет, сколько компонентов на него ссылаются.

Удаление разрешено и при ненулевом счётчике — неиспользуемый файл серверу не мешает, а вот запретить нужное действие из-за счётчика было бы хуже. Но проверить, что именно останется без файла, стоит: поиск по имени файла покажет все места.

Вычисляемый путь

Сборка пути из аргументов
Figure 4. Вкладка «Вычисляемый путь»

Так адресуют файлы, которые сценарию не принадлежат: общие записи, файлы из синхронизируемых разделов, временные файлы. Сюда же попадает случай, когда имя заранее неизвестно — зависит от языка абонента, от региона, от результата запроса.

Путь собирается из двух аргументов — Папка и Файл — и вычисляется в момент выполнения. Оба поля обычные аргументы, то есть могут быть выражением или шаблоном. Если весь путь задан в Файле, Папку оставьте пустой.

Абсолютные пути не используются, и сервер их запрещает. Платформа многосерверная: один и тот же раздел на разных серверах лежит по разным физическим путям.

Вместо абсолютного пути пишется макро-путь — :SYNC_COMMON/, :GLOBALSHARE_PUBLIC/, :TEMP и другие. Сервер разворачивает его в конкретный путь того сервера, на котором выполняется обработчик. Те же макро-пути доступны и функциям выражений — см. Функция.

Проверить существование такого файла редактор не может — путь известен только на сервере и только во время вызова. Поэтому у компонентов воспроизведения есть ветка Переход, ошибка: её стоит заполнять всегда, когда путь вычисляется.

Копирование между сценариями

Если скопировать компоненты, ссылающиеся на вложения, в другой сценарий, файлы перенесутся вместе с ними — сервер скопирует их сам. Отдельно загружать заново не нужно.

◀ 17. Присвоения, параметры, списки

19. Поиск по сценарию ▶