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