Comment « uploader » un fichier vers une bibliothèque SharePoint à distance (et par code) ?

[WSS v2, SPS 2003, WSS v3, MOSS 2007]

Dans SharePoint il existe une manière très simple de télécharger un document vers une bibliothèque : il s’agit d’utiliser le modèle objet et la méthode SPFileCollection.Add (https://msdn2.microsoft.com/en-us/library/ms367739.aspx).

Malheureusement, le modèle objets de SharePoint ne peut être employé que sur le serveur lui-même : on ne peut pas exécuter les DLLs de SharePoint sur un poste client. Pour uploader un document à distance, il faut alors se tourner vers d’autres moyens.

A. Utilisation d’un Web service pour l’upload de documents

 

Il s’agit d’utiliser un Web service hébergé sur le serveur (le serveur SharePoint, et donc le Web service aura accès au modèle objet). SharePoint vient avec un certain nombre de Web services, out-of-the-box. Malheureusement cette liste de Web services reste assez limitée (voir https://msdn2.microsoft.com/en-us/library/ms445760.aspx), et n’expose qu’une petite partie des fonctionnalités. Et parmi cette liste ne figure pas de méthode pour uploader un document. La solution est donc de créer son propre Web service hébergé par SharePoint. Il faut cependant suivre une procédure spécifique pour ce faire. Tout est décrit à https://msdn2.microsoft.com/en-us/library/ms916810.aspx (article rédigé pour la v2 de SharePoint, mais adaptable à la v3).

B. Utilisation des RPC

 

Il s’agit là d’utiliser les RPC de SharePoint (https://msdn2.microsoft.com/en-us/library/ms442469.aspx). Il s’agit d’un protocole assez peu utilisé (et assez peu documenté) qui est une sorte d’extension de WebDav (en fait il ne s’agit pas d’ajouter des verbes HTTP, mais d’utiliser les verbes POST et GET existants). Parmi ces méthodes, on trouve put document (https://msdn2.microsoft.com/en-us/library/ms479623.aspx) qui permet d’envoyer un document dans une bibliothèque. Dans SharePoint v2, cette méthode permet une plus grande souplesse que le modèle objet. N’hésitez-pas à revenir vers nous pour plus de détails.

C. Création d’un service sur le serveur pour une exposition laissée à votre discrétion

Il s’agit d’utiliser la méthode « Web service » décrite plus haut (i.e. écrire un programme exécuté sur le serveur et qui utilise le modèle objet). Vous exposez ensuite ce service par la technologie de votre choix (WCF peut aider ici !).

 -= Julien Bakmezdjian =-