Настройка столбца файла на порталах

Примечание

Действует с 12 октября 2022 г, в качестве порталов для Power Apps используется Power Pages. Дополнительная информация: Microsoft Power Pages теперь доступен для всех (блог)
Скоро мы мигрируем и объединим документацию порталов Power Apps с документацией Power Pages.

Столбец файла используется для хранения двоичных данных. Этот столбец в основном используется для хранения одного файла, заметки или вложения; однако можно хранить и другие формы двоичных данных. Вы можете настроить столбец файла в базовой и многошаговой формах, чтобы обеспечить возможность загрузки, просмотра, изменения или удаления файла. Столбец файла может хранить файлы до указанного максимального размера столбца таблицы Microsoft Dataverse.

Анимация таблицы с полями «Номер продукта», «Название продукта» и «Каталог продуктов». Чтобы заполнить поле «Каталог продуктов», пользователь выбирает «Выбрать файл», а затем ищет файл PDF для его загрузки и использования в каталоге продуктов.

Важно!

  • Вы не можете загрузить файл с помощью режима Вставка на шаге базовой формы или многошаговой формы.

Код Liquid

Язык Liquid — это язык шаблонов с открытым исходным кодом, исходно встроенный в порталы Microsoft Power Apps. Разработчики могут извлекать значения столбцов файлов, когда они запрашивают данные с помощью языка fetchXML и представления сущности.

{% for item in tables.results.entities %}
    {{ item.columnname.Name }}
    {{ item.columnname.Size }}
    {{ item.columnname.Url }}
{% endfor %}
Атрибут Description
Имя. Имя файла, связанного со столбцом
Size Размер файла, в байтах
URL URL-адрес для загрузки файла

Пример: получение данных столбца файла из таблицы контактов

Создайте новый столбец типа данных файла в Dataverse для таблицы контактов с именем myfileattribute.

Примечание

Убедитесь, что вы настроили соответствующее разрешение для таблицы контактов для чтения записи.

{% fetchxml contacts %}
<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="contact">
    <attribute name="fullname" />
    <attribute name="myfileattribute" />    
  </entity>
</fetch>
{% endfetchxml %}

{% for item in contacts.results.entities %}
        "Full Name":"{{ item.fullname }}"
        "Entity File Url":"{{ item.myfileattribute.Name }}",      
        "Entity File Size":"{{ item.myfileattribute.Size }}",
        "Entity File Type":"{{ item.myfileattribute.Url }}" 
{% endfor %}

Веб-API

Можно использовать веб-API порталов для выполнения операций создания, чтения, обновления и удаления в столбцах файлов во всех таблицах Dataverse.

Примечание

Убедитесь, что вы настроили соответствующий настройки сайта веб-API для таблиц и столбцов файлов, к которым вы хотите получить доступ.

Получение данных файлов

Чтобы получить данные файла, используйте запрос API, описанный в следующих примерах.

GET /_api/<entity-type>(id)/<file-attribute-name>/$value

Передача данных файла из конечных точек веб-службы ограничена максимальным объемом данных 16 МБ за один вызов службы. Данные файла, превышающие 16 МБ, должны быть разделены на блоки данных размером 4 МБ или меньше (фрагменты). Каждый блок принимается в отдельном вызове API до тех пор, пока не будут получены все данные файла. Вы несете ответственность за присоединение загруженных блоков данных для формирования полного файла данных путем объединения блоков данных в той же последовательности, в которой блоки были получены.

Пример: загрузка файла < 16 МБ

Запрос
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Отклик
204 No Content
Body:
Byte[ ]

Пример: загрузка файла > 16 МБ

Запросить
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Range: bytes=0-1023
Отклик
HTTP
204 No Content
Body:
Byte[ ]

Отправка даных файла

Чтобы отправить файл, установите значение столбца файла в массив байтов, который содержит содержимое файла.

PUT or PATCH /_api/<entity-type>(id)/<file-attribute-name>

Пример: отправка файла

Запросить
HTTP
PUT [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute
Headers:
Content-Type: application/octet-stream
Body :
Byte [ ]