この CookBook ではストレージ上のファイルをダウンロードする方法を紹介します。
ダウンロードするファイルの設置、必要なロジックの作成、画面からのロジックの呼び出し方法について順序立てて説明していきます。
完成イメージ
以下のアクション・エレメントを使用しています。
- アクション
- IM-LogicDesigner フロールーティングにリクエストを送信する(intra-mart Accel Platform 2021 Summer からファイルダウンロード可能)
- URLにリクエストを送信する(intra-mart Accel Platform 2021 Summer からファイルダウンロード可能)
- URLに遷移する
- エレメント
- ハイパーリンク
- フォーム
完成サンプル
IM-BloomMaker インポートファイル: cookbook_192473_im_bloommaker-data
IM-LogicDesigner インポートファイル: cookbook_192473_im_logicdesigner-data
IM-BloomMaker インポートファイルには、以下の定義が含まれています。
コンテンツ定義 | im_cookbook_192473 |
ルーティング定義 | im_cookbook_192473 |
IM-BloomMaker のインポート機能を利用してインポートしてください。
インポート後、インポートしたルーティング定義の認可 URI の設定を行ってください。
IM-LogicDesigner インポートファイルには、以下の定義が含まれています。
フロー定義 | im_cookbook_192473 |
ルーティング定義 | im_cookbook/192473 |
IM-LogicDesigner のインポート機能を利用してインポートしてください。
インポート後、インポートしたルーティング定義の認可 URI の設定を行ってください。
ローカル環境で表示させる場合は、以下の URL にアクセスしてください。http://localhost:8080/imart/im_cookbook/192473
なおベース URL である以下の部分は、環境に合わせて適宜変更してください。
http://localhost:8080/imart
レシピ
- ダウンロード対象の pdf ファイルをパブリックストレージに配置
- IM-LogicDesigner でパブリックストレージの pdf をダウンロードするサーバロジックを作成
- IM-BloomMaker で pdf ファイルをダウンロードする画面を作成
1. ダウンロード対象の pdf ファイルをパブリックストレージに配置
以下のリンクから pdf ファイルをダウンロードし、ご自身の環境のパブリックストレージに配置してください。
サンプル pdf ファイル: im_cookbook_192473
ダウンロード対象のファイルは動的に作成する場合が多いと思いますが、この Cookbook では簡単に機能を実装するため固定のファイルを利用します。
2. IM-LogicDesigner でパブリックストレージの pdf をダウンロードするサーバロジックを作成
CookBook IM-BloomMaker 「外部リソース埋め込みコンテナ」エレメントを使用してパブリックストレージ上のファイルを閲覧する画面を作成する方法 の「1. IM-LogicDesigner でパブリックストレージの pdf を読み取るサーバロジックを作成」を参考にサーバロジックを作成してください。
上記リンクの手順で以下の部分を変更してください。
ロジックフロー定義編集
定数ID | 定数値 |
---|---|
im_cookbook_192473.pdf |
ロジックフロールーティング定義編集
フロー定義ID | im_cookbook_192473 |
ルーティング | /imart/logic/api/im_cookbook/192473 |
認可URI | im-logic-rest://im_cookbook/192473 |
レスポンス種別 | ファイルダウンロード |
パブリックストレージに配置する pdf 名im_cookbook_192473.pdf
3. IM-BloomMaker で pdf をダウンロードする画面を作成
「サイトマップ」→「BloomMaker」→「コンテンツ一覧」をクリックして、「IM-BloomMaker コンテンツ一覧」画面を開きます。
「コンテンツ新規作成」をクリックして、以下の情報を入力し「登録」ボタンをクリックします。
カテゴリID | im_cookbook |
コンテンツID | im_cookbook_192473 |
コンテンツ種別 | Bulma |
コンテンツ名 | im_cookbook_192473 |
以下の定数を作成してください。
キー名 | 値 |
---|---|
LD_FLOW_ROUTING | logic/api/im_cookbook/192473 |
以下のアクションを作成し、ボタンに設定します。
IM-LogicDesigner フロールーティングにリクエストを送信する
intra-mart Accel Platform 2021 Summer からファイルのダウンロードが可能になりました。
サーバからのレスポンスが以下のいずれかであると、ファイルをダウンロードできます。
- Content-Type が octet-stream である
- Content-Disposition が attachment である
今回の CookBook では「2. IM-LogicDesigner でパブリックストレージの pdf を読み取るサーバロジックを作成」の「ロジックフロールーティング定義編集」で、レスポンス種別に ファイルダウンロード
を指定しています。
そのためサーバから返却される Content-Disposition
が attachment
になり、ファイルのダウンロードができるようになっています。
ルーティング
に im_cookbook/192473
を指定してください。
ボタンを配置し、クリック時のイベントに作成したアクションを指定してください。