クラッシュコース101
10 モジュール
5 週

データベースやサーバーのリクエストに含まれるファイル

クリックでコピー

ファイルをサーバーに送信し、データベースに保存する方法


すべてのチェックが終わると、ユーザーが正しいフォーマットでファイルを送信したことが確認できます。さて、次はそれらをサーバーに送信して、さらに処理する番です。しかし、その前に、ファイルを扱う原則について重要な説明をしておく価値があります。

ファイルの種類

ファイルには2つの異なるタイプがあることにお気づきでしょうか。1つ目は、先ほど作業したモデルファイルです。もうひとつは、ファイルのデータ型です。これは、データベースに格納しやすく、モデルの完成形を見つけやすいIDです。データベースのモデルを設計するとき、使われるのは2番目のタイプです。他のデータ型(String、Integerなど)と同じように使うことができますが、同時に、完全なモデルがそのIDの後ろに隠されていることを常に知ることができるのです。


からファイルを取得するとき Filepickerまたは Select Filesブロックからファイルを取得すると、それはモデルとして表現されます。しかし、ファイルがサーバーのデータベースに保存されていないため、それはまだIDを持っていません。これを行うには、適切な Server request POST /_files/リクエストを送る必要があります。この後、ファイルはデータベースに書き込まれ、そのモデルはIDを取得し、完全に利用できるようになります。

画像のためのURL

Swagger を使って、他にどのようなファイルエンドポイントが存在するかを確認します。今すぐそのうちの1つを必要とします。フロントエンドでファイルを画像として使うには、与えられたファイルへの完全なURLを取得する必要があります。このタスクは GET /_files/:id/download/エンドポイントによって解決されます。ファイルIDを知ることで、それを使って正確なファイルURLを取得することができます。

ブロックの結果として得られたモデルを展開し、ファイルIDを見つける必要があります。 Server request POST /_files/ブロックの結果として得られたモデルを展開し、ファイルIDを見つける必要があります。その後、IDを文字列に変換する必要があります。 To Stringブロックを使って文字列にする必要があります。この結果を使って、最終的な画像のURLを収集してみましょう(同じ GET request /_files/:id/download/).そのためには Concat Strings (Multiple)文字列連結ブロックを使います。最初の部分は"/api/_files/"、2番目はファイルID、3番目は"/download/"となります。

あとは、できた URL を Imageブロックに渡すだけです。設計段階で作成されていたのですが、当初は画像として単純なスタブがありました。これで修正することができます。これを行うには Image Update Propertiesブロックを作成し、そのURLを画像に設定します。


Was this article helpful?
まだ答えをお探しですか?