はじめに
PowerAppsでSharePoint上のファイルを取り扱う際、Download関数を使用してファイルをダウンロードする機能を実装することがあるかと思います。
しかし、Download関数で指定するURLを通常のファイルリンクにすると、ファイルがダウンロードされず、そのままブラウザで開いてしまう場合があります。URLパラメータとして、「download=1」を設定する方法もありますが、これでもブラウザの設定に依存した動作により、ファイルの拡張子によっては、ダウンロードではなくブラウザで直接開かれてしまいます。
解決方法
この問題を解決する確実な方法として、SharePointの専用ダウンロードページを利用する方法があります。
具体的には、以下の形式でURLを構築します。
https://[テナント名].sharepoint.com/sites/[サイトネーム]/_layouts/15/download.aspx?SourceUrl=[ファイルの完全なURL]
パラメータの説明
[テナント名]
: あなたの組織のSharePointテナント名[サイトネーム]
: ファイルが格納されているサイト名[ファイルの完全なURL]
: ダウンロード対象ファイルの完全なURL(URLエンコードが必要)
実装例
PowerAppsでの実装例を示します:
Download(
Concatenate(
"https://contoso.sharepoint.com/sites/mysite/_layouts/15/download.aspx?SourceUrl=",
EncodeUrl(
"https://contoso.sharepoint.com/sites/mysite/Shared Documents/folder/file.pdf"
)
)
)
補足事項
- URLエンコードを忘れずに行うことが重要です
- 対象ファイルへのアクセス権限は従来通り必要です
メリット
この方法には以下のような利点があります。強制的にローカルPCにファイルをダウンロードさせたい場合には便利ですね。
- ブラウザの設定に依存せず、一貫した動作が期待できる
- すべての拡張子のファイルで確実にダウンロードダイアログが表示される
- ユーザー体験の統一性が保たれる
まとめ
上述の通り、SharePointの専用ダウンロードページを利用することで、PowerAppsアプリケーションにおけるファイルダウンロード機能を確実に実装することができます。
それでは、良いPowerAppsライフを!
コメント