Información general sobre imágenes y archivos
Dataverse proporciona varias formas diferentes de guardar datos binarios que representan archivos en diferentes tipos de columnas. La siguiente tabla resume algunas de las similitudes y diferencias.
Archivo | Imagen | Adjunto y nota | |
---|---|---|---|
Tipo de atributo | Archivo | Imagen | Cadena |
Crear nuevas columnas | Sí. Consulte Trabajar con definiciones de columna de archivo mediante código | Sí, consulte Trabajar con definiciones de columna de imagen mediante código | No, solo las columnas activitymimeattachment.body y annotation.documentbody . |
Límites de tamaño de archivo | Configurable por configuración de columna MaxSizeInKB Hasta 10 GB, pero los controles del cliente están limitados a 128 MB |
Configurable por configuración de columna MaxSizeInKB Hasta 30 MB. |
Configurable con la opción Organization.MaxUploadFileSize hasta 128 MB. Vea Límites de tamaño de archivo |
Cargar mensajes | InitializeFileBlocksUpload UploadBlock CommitFileBlocksUpload |
InitializeFileBlocksUpload UploadBlock CommitFileBlocksUpload |
InitializeAttachmentBlocksUpload UploadBlock CommitAttachmentBlocksUpload O InitializeAnnotationBlocksUpload UploadBlock CommitAnnotationBlocksUpload |
Descargar mensajes | InitializeFileBlocksDownload DownloadBlock |
InitializeFileBlocksDownload DownloadBlock |
InitializeAttachmentBlocksDownload DownloadBlock O InitializeAnnotationBlocksDownload DownloadBlock |
Recuperar comportamiento | No se puede recuperar el archivo con el registro. Devuelve el valor fileid en su lugar. |
Puede recuperar imágenes en miniatura con registros. | Puede recuperar el archivo con registros. |
Establecer con creación | No | Solo la columna de imagen principal | Sí |
Establecer con actualización | No, debe establecer el valor de la columna. | Sí | Sí |
Eliminar datos de archivo | Establezca el valor de la columna en nulo o use el mensaje DeleteFile . |
Establezca el valore de columna en null. | Establezca el valore de columna en null. |
Tipos de archivo admitidos | Cualquier archivo no bloqueado por Organization.BlockedAttachments. Vea Bloquear ciertos tipos de archivos | Solo archivos gif , jpeg , tiff , bmp y png . |
Cualquier archivo no bloqueado por Organization.BlockedAttachments. Vea Bloquear ciertos tipos de archivos |
Comportamientos especiales | Columna siempre crea y guarda imágenes en miniatura. Las imágenes de tamaño completo se guardan solo cuando la columna está configurada para hacerlo. Se requiere una sintaxis especial para descargar archivos de imagen de tamaño completo. Cada columna tiene una columna de cadena complementaria que contiene una URL relativa para descargar la imagen. |
||
Más información | Usar datos de columna de archivo | Usar datos de columna de imagen | Usar datos de archivo con registros de Adjuntos y Notas |
Código de ejemplo | SDK para .NET API web |
SDK para .NET API web |
SDK para .NET API web |
Bloquear ciertos tipos de archivos
Puede bloquear los tipos de archivos que se pueden cargar por extensión o tipo MIME.
Bloquear archivos por extensión
Puede especificar qué tipos de archivos no se pueden guardar en columnas de archivos, archivos adjuntos y notas. Use la pestaña General de Configuración del sistema en la configuración Definir las extensiones de archivo bloqueadas para datos adjuntos para controlar los tipos de arcchivo que se bloquearán.
También puede consultar y modificar estos datos mediante programación. Se almacena en la columna Organization.BlockedAttachments. Solo hay una fila en la tabla de organización. Puede usar el SDK o la API web para consultar estos datos:
Este método estático RetrieveBlockedAttachments
:
protected static string RetrieveBlockedAttachments(IOrganizationService service) {
var query = new QueryExpression("organization")
{
ColumnSet = new ColumnSet("blockedattachments"),
TopCount = 1
};
EntityCollection results = service.RetrieveMultiple(query);
return (string)results.Entities.FirstOrDefault()["blockedattachments"];
}
Devuelve un valor de cadena como este por defecto:
ade;adp;app;asa;ashx;asmx;asp;bas;bat;cdx;cer;chm;class;cmd;com;config;cpl;crt;csh;dll;exe;fxp;hlp;hta;htr;htw;ida;idc;idq;inf;ins;isp;its;jar;js;jse;ksh;lnk;mad;maf;mag;mam;maq;mar;mas;mat;mau;mav;maw;mda;mdb;mde;mdt;mdw;mdz;msc;msh;msh1;msh1xml;msh2;msh2xml;mshxml;msi;msp;mst;ops;pcd;pif;prf;prg;printer;pst;reg;rem;scf;scr;sct;shb;shs;shtm;shtml;soap;stm;tmp;url;vb;vbe;vbs;vsmacros;vss;vst;vsw;ws;wsc;wsf;wsh;svg
Más información: Crear consultas con QueryExpression
Cuando alguien intenta cargar un archivo usando uno de los tipos bloqueados, ocurre el siguiente error:
Nombre:
AttachmentBlocked
Código:0x80043e09
Número:-2147205623
Mensaje:The attachment is either not a valid type or is too large. It cannot be uploaded or downloaded.
Bloquear o permitir ciertos tipos MIME
Puede bloquear o permitir la carga de archivos según los tipos MIME. Más información: Validación de tipo MIME.
También puede consultar y modificar estos datos mediante programación. Se almacena en las columnas Organization.BlockedMimeTypes y Organization.AllowedMimeTypes . Solo hay una fila en la tabla de organización. Puede usar el SDK o la API web para consultar estos datos:
public static (string, string) RetrieveMimeTypes(IOrganizationService service)
{
var query = new QueryExpression("organization")
{
ColumnSet = new ColumnSet("blockedmimetypes", "allowedmimetypes"),
TopCount = 1
};
EntityCollection results = service.RetrieveMultiple(query);
Entity organization = results.Entities.FirstOrDefault();
return (
organization.Contains("blockedmimetypes") ? (string)organization["blockedmimetypes"] : string.Empty,
organization.Contains("allowedmimetypes") ? (string)organization["allowedmimetypes"] : string.Empty);
}