Configurar uma coluna de ficheiros em portais
Nota
A partir de 12 de outubro de 2022, os portais do Power Apps passam a ser Power Pages. Mais informações: O Microsoft Power Pages está agora em disponibilidade geral (blogue)
Em breve, vamos migrar e unir a documentação dos portais do Power Apps com a documentação do Power Pages.
Uma coluna de ficheiro é utilizada para armazenar dados binários. Esta coluna é utilizada principalmente para armazenar um único ficheiro, nota ou anexo; no entanto, é possível armazenar outros formulários de dados binários. É possível configurar uma coluna de ficheiro em formulários básicos e de vários passos para fornecer a capacidade de carregar, ver, modificar ou eliminar o ficheiro. A coluna de ficheiro pode armazenar ficheiros até ao tamanho máximo especificado de uma coluna de tabela do Microsoft Dataverse.
Importante
- Não pode carregar um ficheiro utilizando o modo Inserir num formulário básico ou num passo de formulário de vários passos.
Código Liquid
O Liquid é uma linguagem de modelos open source que está integrada de forma nativa nos portais do Microsoft Power Apps. Os programadores podem obter os valores de coluna de ficheiro quando consultam os dados através de fetchXML e uma vista de entidade.
{% for item in tables.results.entities %}
{{ item.columnname.Name }}
{{ item.columnname.Size }}
{{ item.columnname.Url }}
{% endfor %}
Atributo | Description |
---|---|
Name | O nome do ficheiro associado à coluna |
Size | Tamanho do ficheiro em bytes |
URL | URL de transferência do ficheiro |
Exemplo: obter dados de colunas de ficheiro a partir de uma tabela de contactos
Crie uma nova coluna de tipo de dados de ficheiro no Dataverse para uma tabela de contactos com o nome myfileattribute.
Nota
Certifique-se de que configurou a permissão de tabela apropriada na tabela de contactos para ler o registo.
{% 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 da Web
A API Web de Portais pode ser utilizada para efetuar operações de criação, leitura, atualização e eliminação em colunas de ficheiro nas tabelas do Dataverse.
Nota
Certifique-se de que configurou as definições de site da API Web adequada para as tabelas e as colunas de ficheiro às quais pretende aceder.
Obter dados de ficheiro
Para obter dados de ficheiro, utilize o pedido da API descrito nos seguintes exemplos.
GET /_api/<entity-type>(id)/<file-attribute-name>/$value
As transferências de dados de ficheiro dos pontos final do serviço Web estão limitadas a um máximo de 16 MB de dados numa única chamada de serviço. Os dados de ficheiro que excedam 16 MB têm de ser divididos em blocos de dados de 4 MB ou mais pequenos (segmentos). Cada bloco é recebido numa chamada à API separada, até que todos os dados do ficheiro tenham sido recebidos. É da sua responsabilidade unir os blocos de dados transferidos para formar o ficheiro de dados completo combinando os blocos de dados na mesma sequência em que os blocos foram recebidos.
Exemplo; Transferência de ficheiro < 16 MB
Pedido
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Resposta
204 No Content
Body:
Byte[ ]
Exemplo; Transferência de ficheiro > 16 MB
Pedido
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Range: bytes=0-1023
Resposta
HTTP
204 No Content
Body:
Byte[ ]
Carregar dados de ficheiro
Para carregar o ficheiro, defina o valor da coluna de ficheiro para uma matriz de byte que contenha o conteúdo do ficheiro.
PUT or PATCH /_api/<entity-type>(id)/<file-attribute-name>
Exemplo: carregamento de ficheiros
Pedir
HTTP
PUT [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute
Headers:
Content-Type: application/octet-stream
Body :
Byte [ ]