Загрузка и сохранение медиафайлов
Эта функция позволяет легко загружать фото или видео в ваше приложение. Вы можете хранить файл в Firebase, Supabase или на своем сервере через API. После загрузки файла можно получить доступ к нему через сгенерированный URL. Этот URL можно использовать для мгновенного отображения содержимого или для сохранения в базе данных для дальнейшего использования.
Требования для Firebase
- Firebase должен быть подключен к вашему проекту. Следуйте инструкциям на этой странице для интеграции Firebase с FlutterFlow.
- Firebase Аутентификация должна быть правильно настроена. Подробности можно найти на этой странице.
- Firebase Storage должен быть настроен и корректно сконфигурирован. Это занимает всего несколько секунд! Следуйте инструкциям на этой странице.
- В проекте должна быть настроена как минимум одна Firebase Collection, чтобы сохранить сгенерированный URL.
Требования для Supabase
- Убедитесь, что Supabase интегрирован в ваше приложение.
- Создайте контейнер для хранения в Supabase. Совет: Чтобы любой пользователь мог скачать загруженные медиафайлы, можно включить "Публичный контейнер".
- Примените дополнительные правила безопасности, которые определяют, кто может получить доступ к контейнеру. Совет: Если вы загружаете файлы в структуру папок, например, 'pics/uploads', можно добавить политику, которая позволит загружать изображения профиля только аутентифицированным пользователям.
Добавление действия загрузки/сохранения медиафайлов
Следуйте шагам ниже, чтобы добавить это действие на любой виджет.
- Выберите Виджет (например, кнопку), на который хотите добавить действие.
- Выберите Действия в Панели свойств (правое меню) и нажмите Открыть. Это откроет Редактор потоков действий в новом всплывающем окне. Если это первое действие, нажмите кнопку + Добавить действие. В противном случае нажмите кнопку "+" под предыдущим действием и выберите Добавить действие.
- Найдите и выберите Загрузка/Сохранение медиафайлов (в разделе Утилиты > Загрузка данных).
- Если вы еще не интегрировали Firebase или Supabase, тип загрузки по у молчанию будет Сохранить медиафайл для загрузки. После интеграции можно выбрать Тип загрузки как Firebase, Supabase или Локально (Состояние виджета).
- Используйте Тип/Источник медиафайла, чтобы указать, хотите ли вы загружать фото, видео или оба типа.
- В выпадающем меню Источник медиафайла можно выбрать Камера, Галерея или Камера или Галерея (эта опция вызовет нижнюю панель, где пользователь сможет выбрать источник медиафайла как Камера или Галерея) и Загруженный медиафайл. Если выбран Загруженный медиафайл, добавьте еще одно действие такого же типа перед этим, указав Тип загрузки как Локальная загрузка (Состояние виджета).
- Если вы загружаете фото, можно задать максимальную ширину и высоту изображения, используя параметры Макс. ширина и Макс. высота соответственно. Это изменит размер изображения с сохранени ем его пропорций.
- Контролируйте Качество изображения с помощью ползунка или путем прямого ввода значения от 0 до 100, где 100 — исходное качество.
- Чтобы получить размеры загруженного медиафайла, т.е. ширину и высоту, включите Включить размер медиафайла. Это вычисление ресурсоемкое, поэтому включайте его только при необходимости.
- Используйте Стиль выбора источника для настройки интерфейса нижней панели при выборе источника Камера или Галерея.
- Разрешите загрузку нескольких изображений, отметив Разрешить несколько изображений. Для этого Источник медиафайла должен быть установлен на Галерея.
- Чтобы информировать пользователя о процессе загрузки изображения, включите Показать уведомление.
- В Тип загрузки:
- Если выбран Firebase, необходимо развернуть правила хранения.
- Если выбран Supabase, укажите Имя контейнера и установите Путь к загружаемой папке (например, pics/uploaded).
- Если выбран Локально (Состояние виджета), скорее всего, вы хотите загрузить медиафайл на свой сервер через API. В этом случае добавьте следующее действие как API вызов и выберите API, который загрузит файл на ваш сервер. Примечание: тело запроса для этого API должно быть в формате Multipart.
- После загрузки медиафайла, узнайте, как отобразить его на виджете в следующем разделе.
- Загрузка в Firebase
- Загрузка в Supabase
- Загрузка медиафайла через API
Отображение загруженных медиафайлов
Чтобы отобразить медиафайл на той же странице, с которой выполнялось действие Загрузка/Сохранение медиафайлов, выполните следующие шаги:
- Перетащите виджет, подходящий для отображения загруженного медиафайла. Например, для отображения фото можно использовать Image виджет. Для видео — VideoPlayer виджет.
- Перейдите в панель свойств, установите Тип на Сеть, и нажмите Установить из переменной.
- Для медиафайлов, загруженных на Firebase или Supabase, выберите Источник как Состояние виджета > URL загруженного файла.
- Для медиа файлов, загруженных через API, выберите Источник как Результаты действий > [Имя переменной результата действия] (Ответ API).
- Чтобы установить временное изображение/видео до полной загрузки, используйте Значение по умолчанию для указания URL-заполнителя.
подсказка
Для корректной работы рекомендуется указать Значение по умолчанию. Это предотвратит ошибки в приложении, вызванные пустым URL.