IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Sharepoint .NET Discussion :

Upload d'un fichier de type custom avec métadonnées custom [Débutant]


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut Upload d'un fichier de type custom avec métadonnées custom
    Bonjour,

    Mon appli se connecte à un SharePoint Foundation 2013 pour la gestion de ses pièces jointes, et le cahier des charges veut qu'un fichier ait des propriétés supplémentaires spécifiques.

    Je me suis donc orientée vers la création d'un type de contenu custom, héritant de Document (0x0101), et à la création de Fields custom liés à ce ContentType.

    J'ai tout implémenté dans le code à l'aide des exemples MSDN : https://msdn.microsoft.com/fr-fr/lib...or=-2147217396

    Jusque là, tout va bien. Le nouveau contentType est créé, les Fields aussi et les deux sont liés.

    Au moment d'upload un fichier vers le SharePoint, je ne parviens pas à forcer le ContentType du fichier.

    Voici un exemple des multiples versions testées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Microsoft.SharePoint.Client.Folder pathFolder = GetPathFolder(context, "<url>");
     
    ContentTypeCollection contentTypes = context.Web.ContentTypes;
    context.Load(contentTypes);
    context.ExecuteQuery();
    ContentType type = contentTypes.FirstOrDefault(c => c.Name == "customContentType");
     
    FileCreationInformation fci = new FileCreationInformation() { Content = contenuDocument, Url = description.Nom };
    Microsoft.SharePoint.Client.File newFile = pathFolder.Files.Add(fci);
     
    if (type != null ) 
    {
    	newFile.ListItemAllFields["ContentTypeId"] = type.Id.ToString();
    	newFile.ListItemAllFields.Update();
    	context.ExecuteQuery();
    }
    Ici, je n'ai aucune exception, aucune erreur. Sauf que le newFile rétablit le ContentTypeId qu'il avait juste avant que je ne le force.
    Le fichier est bien upload, mais il n'a pas pris en compte mon customContentType.

    Donc évidemment après ça, quand je tente d'alimenter une propriété custom, il me dit qu'elle n'existe pas. Normal j'imagine, puisque le fichier n'a pas le bon type.


    Toute piste est la bienvenue, merci d'avance

    Cordialement

  2. #2
    Membre expérimenté
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Points : 1 561
    Points
    1 561
    Par défaut
    Bonjour,

    pourquoi ne pas forcer la création d'origine du document avec le bon contenttype ? (en n'autorisant que celui ci sur la bibliothèque)

    Sinon le mieux est ensuite de le faire via un ItemEventReceiver qui va modifier le CT du document et remplir les champs qui sont nécessaires.
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 339
    Points : 586
    Points
    586
    Par défaut
    Bonjour,
    Merci pour ta réponse : déjà essayé, ça ne changeait rien.

    Après avoir échangé avec un admin SP, mon implémentation était partielle :
    Il faut ajouter le ContentType dans les modèles de listes du site en cours, et autoriser/affecter ce contentType sur la bibliothèque ciblée.

    Je considère ce poste comme résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/12/2013, 14h28
  2. Réponses: 11
    Dernier message: 18/07/2007, 16h20
  3. Connaitre type d'un fichier (<input type="file"..>) avec javascript
    Par goldorax113 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/04/2006, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo