Partager via


Vue d’ensemble des fichiers et des images

Dataverse fournit plusieurs façons d’enregistrer des données binaires représentant des fichiers dans différents types de colonnes. Le tableau suivant résume certaines des similitudes et des différences.

File Image Pièce jointe et Note
Type d’attribut File Image String
Créer de nouvelles colonnes ? Oui. Voir Utiliser des définitions de colonne de fichier avec du code Oui, voir Utiliser des définitions de colonne d’image avec du code Non, uniquement les colonnes activitymimeattachment.body et annotation.documentbody .
Limites de taille de fichier Configurable selon le paramètre de colonne MaxSizeInKB
Jusqu’à 10 Go, mais commandes client limitées à 128 Mo
Configurable selon le paramètre de colonne MaxSizeInKB
Jusqu’à 30 Mo.
Configurable selon le paramètre Organization.MaxUploadFileSize jusqu’à 128 Mo. Voir Limites de taille de fichier
Charger des messages InitializeFileBlocksUpload
UploadBlock
CommitFileBlocksUpload
InitializeFileBlocksUpload
UploadBlock
CommitFileBlocksUpload
InitializeAttachmentBlocksUpload
UploadBlock
CommitAttachmentBlocksUpload
OU
InitializeAnnotationBlocksUpload
UploadBlock
CommitAnnotationBlocksUpload
Télécharger des messages InitializeFileBlocksDownload
DownloadBlock
InitializeFileBlocksDownload
DownloadBlock
InitializeAttachmentBlocksDownload
DownloadBlock
OU
InitializeAnnotationBlocksDownload
DownloadBlock
Comportement de récupération Impossible de récupérer le fichier avec l’enregistrement. Renvoie la valeur fileid à la place. Peut récupérer des images de la taille d’une vignette avec des enregistrements. Impossible de récupérer le fichier avec des enregistrements.
Définir avec Create Non Uniquement la colonne Image principale Oui
Définir avec Update Non, vous devez définir la valeur de la colonne. Oui Oui
Supprimer des données fichier Définissez la valeur de la colonne sur null ou utilisez le message DeleteFile. Définissez la valeur de la colonne sur null. Définissez la valeur de la colonne sur null.
Types de fichiers pris en charge Tout fichier non bloqué par Organization.BlockedDocuments joints. Voir Bloquer certains types de fichiers Uniquement les fichiers gif, jpeg, tiff, bmp et png. Tout fichier non bloqué par Organization.BlockedDocuments joints. Voir Bloquer certains types de fichiers
Comportements particuliers La colonne crée et enregistre toujours des images de la taille d’une vignette. Les images en taille réelle sont enregistrées uniquement lorsque la colonne est configurée pour le faire. Syntaxe spéciale requise pour télécharger des fichiers image en taille réelle.

Chaque colonne a une colonne de chaîne associée qui contient une URL relative pour télécharger l’image.
Informations supplémentaires Utiliser les données de colonne de fichier Utiliser les données de colonne d’image Utiliser des données de fichier avec des enregistrements de pièce jointe et de note
Exemple de code SDK pour .NET
API web
SDK pour .NET
API web
SDK pour .NET
API web

Bloquer certains types de fichiers

Vous pouvez bloquer les types de fichiers pouvant être téléchargés par l’extension ou le type MIME.

Bloquer les fichiers par extension

Vous pouvez spécifier les types de fichiers qui ne peuvent pas être enregistrés dans les colonnes de fichiers, les pièces jointes et les notes. Utilisez l’onglet Général des Paramètres système sous le paramètre Définir les extensions de fichier bloquées pour les pièces jointes pour contrôler les types de fichiers à bloquer.

Vous pouvez également interroger et modifier ces données par programmation. Elles sont stockées dans la colonne Organisation.BlockedDocuments joints. La table d’organisation ne contient qu’une seule ligne. Vous pouvez utiliser le SDK ou l’API web pour interroger ces données :

Cette méthode statique 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"];

}

Renvoie une valeur de chaîne comme la suivante par défaut :

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

Pour plus d’informations : Générer des requêtes avec QueryExpression

Lorsque quelqu’un essaie de télécharger un fichier en utilisant l’un des types bloqués, l’erreur suivante se produit :

Nom: AttachmentBlocked
Code : 0x80043e09
Nombre : -2147205623
Message : The attachment is either not a valid type or is too large. It cannot be uploaded or downloaded.

Bloquer ou autoriser certains types MIME

Vous pouvez bloquer ou autoriser le téléchargement de fichiers en fonction des types MIME. Pour plus d’informations : Validation du type MIME.

Vous pouvez également interroger et modifier ces données par programmation. Il est stocké dans les colonnes Organization.BlockedMimeTypes et Organization.AllowedMimeTypes. La table d’organisation ne contient qu’une seule ligne. Vous pouvez utiliser le SDK ou l’API web pour interroger ces données :

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);
}