次の方法で共有


ポータルに画像列を構成する

注意

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 までの画像をアップロードすることができます。

サイト設定の作成

まず、認証されたユーザーがプロフィール写真をアップロードできるようにサイト設定を作成する必要があります:

  1. Power Apps にサインインします。

  2. ポータルを含む環境を選択します。

  3. 左側のウィンドウで、アプリを選び、ポータル管理アプリを開きます。

    Portal Management アプリのハイライトを使用して、アプリ リストのスクリーンショット。

  4. 左側ペインのサイトで、サイト設定を選択します。

  5. Profile/ShowImageという設定を作成し、値を true に設定します。 (設定が存在する場合、値を true にします。)

    Profile/ShowImage サイト設定のスクリーンショット。