注意
2022 年 10 月 12 日より、Power Apps ポータルは Power Pages となります。 詳細: Microsoft Power Pages の一般提供が開始されました (ブログ)
Power Apps ポータルのドキュメントは、近日中に Power Pages ドキュメントに移行、統合されます。
画像列は、Dataverse テーブルの列に画像ファイルを格納します。 フォームに画像列を追加して、画像をアップロード、表示、変更、および削除します。 利用可能な場合、フォームに画像のサムネイルが表示されます。
注意
基本フォームまたはマルチステップ フォーム ステップで 挿入 モードを使用して、画像ファイルをアップロードすることはできません。
画像 URL
画像 URL は、画像が保存されている場所の完全な URL を示します。 これは、開発とトラブルシューティングに使用できます。
画像の URL は次の形式を取ります:
{0}/Image/download.aspx?entity={1}&attribute={2}&id={3}
どこで:
{0} はポータル URL です
{1} はエンティティの論理名です
{2} は列の論理名です
{3} は画像 ID です
たとえば、ポータルが https://contososite.powerappsportals.com にある場合、コードは次のようになります:
https://contososite.powerappsportals.com/Image/download.aspx?entity=contact&attribute=entityimage&id=cb059a4a-b1a6-ec11-9840-00224829604e
Liquid
Liquid コード を使用して Web サイトを設計し、Dataverse テーブルからレコードを取得できます。 fetchXML とエンティティビューを使用して、次のように画像列の値を読み込みます:
{% for item in tables.results.entities %}
{{ item.columnname.Type }}
{{ item.columnname.Size }}
{{ item.columnname.Url }}
{{ item.columnname.Value }}
{% endfor %}
どこで:
タイプは画像の MIME タイプです
サイズはバイト単位の画像サイズです
値は Base64 文字列としての画像値です
URL は画像の URL です
例: 既定の連絡先画像を取得する
{% fetchxml contacts %}
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="contact">
<attribute name="fullname"/>
<attribute name="entityimage"/>
</entity>
</fetch>
{% endfetchxml %}
{% for item in contacts.results.entities %}
{
"Full Name":"{{ item.fullname }}"
"Entity Image Type":"{{ item.entityimage.Type}}",
"Entity Image Size":"{{ item.entityimage.Size}}",
"Entity Image Url":"{{ item.entityimage.Url}}",
"Entity Image Value":"{{ item.entityimage.Value}}"
}
{% endfor %}
Web API
ポータルの Web API を使用して、Dataverse テーブル全体の画像列にの画像を作成、読み取り、更新、削除ができます。
画像データを取得する
サムネイル画像データをダウンロードするには、次の API 呼び出しを使用します:
GET /_api/<entity-type>(id)/<image-attribute-name>/$value
Web サービスのエンドポイントから転送された画像データは、単一のサービス コールで最大 16 MB データに制限されています。
例: サムネイルのダウンロード
次の例では、サムネイルが存在する場合は GET 呼び出しを使用してダウンロードします。
HTTP 要求:
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/entityimage/$value
Headers:
Content-Type: application/octet-stream
HTTP 応答:
204 No Content
Body:
Byte[ ]
この例では、サムネイルが存在しないため画像は返されません。 サムネイルが存在する場合、応答は値を含むバイト配列を返します。
画像データをアップロードする
画像をアップロードするには、画像列の値に画像ファイルの内容を含むバイト配列を設定します:
PUT or PATCH /_api<entity-type>(id)/<image-attribute-name>
例: 画像のアップロード
HTTP 要求:
PUT [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/entityimage
Headers:
Content-Type: application/octet-stream
Body :
Byte [ ]
プロフィール画像のアップロード
認証されたポータル ユーザーは、ポータルのプロフィール欄に画像をアップロードできます。 画像は、Dataverse の対応する取引先担当者レコードのエンティティ画像列に保存されます。 最大 10 MB までの画像をアップロードすることができます。
サイト設定の作成
まず、認証されたユーザーがプロフィール写真をアップロードできるようにサイト設定を作成する必要があります:
Power Apps にサインインします。
ポータルを含む環境を選択します。
左側のウィンドウで、アプリを選び、ポータル管理アプリを開きます。
左側ペインのサイトで、サイト設定を選択します。
Profile/ShowImageという設定を作成し、値を true に設定します。 (設定が存在する場合、値を true にします。)