Configurar una columna de archivo en portales

Nota

A partir del 12 de octubre de 2022, los portales de Power Apps son Power Pages. Más información: Microsoft Power Pages ya está disponible para el público en general (blog)
Pronto migraremos y fusionaremos la documentación de los portales de Power Apps con la documentación de Power Pages.

Una columna de archivo se utiliza para almacenar datos binarios. Esta columna se usa principalmente para almacenar un solo archivo, nota o archivo adjunto; sin embargo, es posible almacenar otras formas de datos binarios. Puede configurar una columna de archivo en formularios básicos y de varios pasos para proporcionar la capacidad de cargar, ver, modificar o eliminar el archivo. La columna de archivo puede almacenar archivos hasta el tamaño máximo especificado en una columna de la tabla de Microsoft Dataverse.

Animación de una tabla con campos para Número de producto, Nombre del producto y Catálogo de productos. Para completar el campo Catálogo de productos, el usuario selecciona Elegir archivo y luego busca un archivo PDF para cargarlo y usarlo para el Catálogo de productos.

Importante

  • No puede cargar un archivo usando el modo Insertar en un formulario básico o un paso de un formulario de varios pasos.

Código Liquid

Liquid es un lenguaje de plantilla de código abierto que se integra de forma nativa en los portales de Microsoft Power Apps. Los desarrolladores pueden recuperar valores de columna de archivo cuando consultan datos usando fetchXML y la vista de entidad.

{% for item in tables.results.entities %}
    {{ item.columnname.Name }}
    {{ item.columnname.Size }}
    {{ item.columnname.Url }}
{% endfor %}
Attribute Description
Name Nombre del archivo asociado con la columna
Size Tamaño del archivo en bytes
Dirección URL URL para descargar el archivo

Ejemplo: recuperar datos de columna de archivo de una tabla de contactos

Cree una nueva columna de tipo de datos de archivo en Dataverse para una tabla de contactos con el nombre myfileattribute.

Nota

Asegúrese de haber configurado los permisos de tabla adecuados en la tabla de contactos para leer el registro.

{% 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 Web

Puede utilizar la API web de portales para realizar las operaciones de crear, leer, actualizar y eliminar en columnas de archivo a lo largo de las tablas de Dataverse.

Nota

Asegúrese de haber configurado la configuración del sitio de la API web adecuada para las tablas y columnas de archivo a las que desea acceder.

Recuperar datos de archivo

Para recuperar datos de archivos, utilice la solicitud de API que se describe en los siguientes ejemplos.

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

Las transferencias de datos de archivos desde extremos de servicio web están limitadas a un máximo de 16 MB de datos en una sola llamada de servicio. Los datos de archivo que excedan los 16 MB deben dividirse en bloques de datos (trozos) de 4 MB o menos. Cada bloque se recibe en una llamada API separada hasta que se hayan recibido todos los datos del archivo. Es responsabilidad suya unir los bloques de datos descargados para formar el archivo de datos completo combinando los bloques de datos en la misma secuencia en que se recibieron.

Ejemplo: descargar un archivo < 16 MB

Solicitud
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Respuesta
204 No Content
Body:
Byte[ ]

Ejemplo: descargar un archivo > 16 MB

Solicitud
HTTP
GET [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute/$value
Headers:
Content-Type: application/octet-stream
Range: bytes=0-1023
Respuesta
HTTP
204 No Content
Body:
Byte[ ]

Cargar archivo de datos

Para cargar el archivo, establezca el valor de la columna de archivo en una matriz de byte que contenga el contenido del archivo.

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

Ejemplo: Carga de archivo de ejemplo

Solicitar
HTTP
PUT [Portal Url]/_api/accounts(62d53214-9dfa-eb11-94ee-0022482230a8)/myfileattribute
Headers:
Content-Type: application/octet-stream
Body :
Byte [ ]