Files and images overview
Dataverse provides several different ways to save binary data representing files in different types of columns. The following table summarizes some of the similarities and differences.
File | Image | Attachment & Note | |
---|---|---|---|
Attribute Type | File | Image | String |
Create new columns? | Yes. See Work with file column definitions using code | Yes, See Work with image column definitions using code | No, only activitymimeattachment.body and annotation.documentbody columns. |
File Size limits | Configurable by column MaxSizeInKB settingUp to 10 GB, but client controls limited to 128 MB |
Configurable by column MaxSizeInKB settingUp to 30 MB. |
Configurable by Organization.MaxUploadFileSize setting up to 128 MB. See File size limits |
Upload Messages | InitializeFileBlocksUpload UploadBlock CommitFileBlocksUpload |
InitializeFileBlocksUpload UploadBlock CommitFileBlocksUpload |
InitializeAttachmentBlocksUpload UploadBlock CommitAttachmentBlocksUpload OR InitializeAnnotationBlocksUpload UploadBlock CommitAnnotationBlocksUpload |
Download Messages | InitializeFileBlocksDownload DownloadBlock |
InitializeFileBlocksDownload DownloadBlock |
InitializeAttachmentBlocksDownload DownloadBlock OR InitializeAnnotationBlocksDownload DownloadBlock |
Retrieve Behavior | Can't retrieve file with record. Returns fileid value instead. |
Can retrieve thumbnail-sized images with records. | Can retrieve file with records. |
Set with Create | No | Only Primary image column | Yes |
Set with Update | No, you must set the column value. | Yes | Yes |
Delete File data | Set column value to null or use DeleteFile message. |
Set column value to null. | Set column value to null. |
File types supported | Any file not blocked by Organization.BlockedAttachments. See Block certain types of files | Only gif , jpeg , tiff , bmp , & png files. |
Any file not blocked by Organization.BlockedAttachments. See Block certain types of files |
Special Behaviors | Column always creates and saves thumbnail-sized images. Full-sized images are saved only when the column is configured to do so. Special syntax required to download full-sized image files. Each column has a companion string column that contains a relative URL to download the image. |
||
More information | Use file column data | Use image column data | Use file data with Attachment and Note records |
Sample Code | SDK for .NET Web API |
SDK for .NET Web API |
SDK for .NET Web API |
Block certain types of files
You can block the types of files that can be uploaded by the extension or MIME type.
Block files by extension
You can specify which types of files can't be saved in file columns, attachments and notes. Use the System Settings General tab under the Set blocked file extensions for attachments setting to control the file types to be blocked.
You can also query and modify this data programmatically. It's stored in the Organization.BlockedAttachments column. There's only one row in the organization table. You can use the SDK or Web API to query this data:
This static RetrieveBlockedAttachments
method:
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"];
}
Returns a string value like this by default:
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
More information: Build queries with QueryExpression
When anyone tries to upload a file using one of the blocked types, the following error occurs:
Name:
AttachmentBlocked
Code:0x80043e09
Number:-2147205623
Message:The attachment is either not a valid type or is too large. It cannot be uploaded or downloaded.
Block or allow certain MIME types
You can block or allow upload of files based on MIME types. More Information: Mime Type Validation.
You can also query and modify this data programmatically. It's stored in the Organization.BlockedMimeTypes and Organization.AllowedMimeTypes columns. There's only one row in the organization table. You can use the SDK or Web API to query this data:
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);
}