Pliki w zapytaniach do bazy danych i serwera
Jak wysłać plik na serwer i zapisać go w bazie danych
Po wszystkich sprawdzeniach możemy być pewni, że użytkownik przesłał pliki w prawidłowym formacie. Teraz nadszedł czas na wysłanie ich na serwer do dalszej obróbki. Najpierw jednak warto dokonać ważnego wyjaśnienia na temat zasad pracy z plikami.
Rodzaje plików
Zapewne zauważyłeś, że istnieją dwa różne rodzaje plików. Pierwszy z nich to ten, z którym właśnie pracowaliśmy, czyli plik modelu. Drugi to typ danych pliku. Jest to identyfikator, który łatwo przechowywać w bazie danych i łatwo znaleźć kompletny model. Podczas projektowania modelu bazy danych to właśnie ten drugi typ jest wykorzystywany. Można go używać w taki sam sposób jak inne typy danych (String, Integer i inne), ale jednocześnie zawsze wiemy, że za jego ID kryje się pełny model.
Kiedy pobieramy plik z Filepicker lub Select Files blok, jest on reprezentowany jako model. Ale nie ma on jeszcze ID, ponieważ plik nie został zapisany w bazie danych serwera. Aby to zrobić, należy wykonać odpowiednie Server request POST /_files/ żądanie do punktu końcowego, który został wcześniej automatycznie utworzony. Po tej czynności plik zostaje zapisany w bazie danych, a jego model zyskuje identyfikator i może być w pełni wykorzystywany.
URL dla obrazów
Użyj Swagger, aby zobaczyć, jakie istnieją inne punkty końcowe plików. My potrzebujemy jednego z nich właśnie teraz. Aby użyć plików jako obrazków we front-endzie, trzeba uzyskać pełny adres URL do danego pliku. To zadanie jest rozwiązywane przez GET /_files/:id/download/ endpoint. Znając ID pliku, można go użyć i uzyskać dokładny adres URL pliku.
Musimy rozwinąć model uzyskany w wyniku działania Server request POST /_files/ bloku i dowiedzieć się, jaki jest identyfikator pliku. Następnie ID należy zamienić na ciąg znaków za pomocą. To String block. Użyjmy tego wyniku, aby zebrać ostateczny adres URL obrazu (taki sam jak np. GET request /_files/:id/download/). Aby to zrobić, używamy bloku Concat Strings (Multiple) blok konkatenacji ciągów znaków. Pierwszą częścią będzie "/api/_files/", drugą - identyfikator pliku, a trzecią - "/download/".
Pozostaje tylko przekazać wynikowy adres URL do bloku Image bloku. Został on utworzony na etapie projektowania, ale początkowo istniał prosty stub jako obraz. Teraz możemy to naprawić. Aby to zrobić, należy użyć Image Update Properties i ustawić adres URL na obrazek.