Вводный курс
10 модулей
5 недели

Файлы в базе данных и серверных запросах

Скопировать

Как отправить файл на сервер и сохранить его в базе данных


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

Типы файлов

Вы могли заметить, что существуют два разных типа файлов. Первый - это тот, с которым мы только что работали, файл в виде модели. Второй - тип данных file. Он представляет собой ID, который легко хранить в базе данных и по которому легко найти полную модель. При проектировании модели базы данных используется именно второй вид. Он может быть использован также, как и другие типы данных (String, Integer и прочие), но при этом мы всегда знаем, что за его ID скрывается полная модель.


Когда мы только получаем файл из Filepicker или блока Select Files он представлен в виде модели. Но у него еще нет ID, так как файл не сохранен в базе данных сервера. Для этого нужно сделать соответствующий запрос Server request POST /_files/ к эндройнту, который был автоматически создан заранее. Именно после этого файл записывается в базу данных, а его модель приобретает ID и ее можно полноценно использовать.

URL изображений

Воспользуйтесь Swagger’ом, чтобы посмотреть, какие еще существуют эндпойнты для работы с файлами. Один из них понадобится нам уже сейчас. Для использования файлов, в качестве изображения на фронте, необходимо получить полный URL к данному файлу. Данная задача решается эндпойнтом GET /_files/:id/download/. Зная ID файла можно воспользоваться им и получить точный URL файла.

Нам потребуется развернуть модель, полученную в результате работы блока Server request POST /_files/ и узнать ID файла. После этого ID нужно превратить в строку с помощью блока To String. Воспользуемся полученным результатом, чтобы собрать окончательный URL изображения (он же GET-запрос /_files/:id/download/). Для этого используем блок объединения строк Concat Strings (Multiple). В первой части будет указан “/api/_files/”, во второй ID файла, а в третьей “/download/”.

Осталось только передать полученный URL блоку Image. Он был создан еще на этапе проектирования дизайна, но изначально в качестве изображения там стояла простая заглушка. Теперь мы можем это исправить. Для этого воспользуемся блоком Image Update Properties и установим URL к изображению.


Was this article helpful?
Все еще ищете ответ?
Cообщество