SharePoint Upload Document [German]
Auf dem SharePoint Technologies Day bin auf die Problematik der "unvollständigen" Web Services von SharePoint eingangen und habe als mögliche Lösung ein Tunneln des Objektmodells vorgeschlagen.
Besonders das fehlende Dokumenten-Upload führt schnell zu einer Sackgasse, aus der man entweder nur per WebDAV oder Frontpage RPC rauskommt - ausser, ausser man tunnelt das Objektmodell. Die Idee ist es einen eigenen Web Service zu schreiben, der intern das Objektmodell nutz und dessen Funktionen dann nach aussen frei gibt. Dieser Web Service lässt sich dann sogar direkt in SharePoint installieren.
Ein konkretes Beispiel hat Microsoft bereits im April 2004 vorgestellt und genau die fehlende
Dokumenten-Upload Funktionalität implementiert:
[WebMethod]
public string UploadDocument(string fileName, byte[] fileContents, string pathFolder)
{
if ( fileContents == null)
{
return "Null Attachment";
}
try
{
SPWeb site = SPControl.GetContextWeb(Context);
SPFolder folder = site.GetFolder(pathFolder);
string fileUrl = fileName;
SPFile file = folder.Files.Add(fileUrl, fileContents);
return file.TimeCreated.ToLongDateString()+ "::" + file.Title;
}
catch (System.Exception ee)
{
return ee.Message + "::" + ee.Source;
}
}
Alles weitere, insbesondere die Anleitung wie der Web Service unter SharePoint zu installieren ist, findet sich im MSDN Artikel "Writing Custom Web Services for SharePoint Products and Technologies"
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_sp2003_ta/html/odc_writingcustomwebservicesforsppt.asp