Wenn man programmgesteuert eine vorhandene Datei von der Festplatte in eine Sharepoint Dokumentenbibliothek hochladen will, kann man dies mittels folgender C#-Befehle bewerkstelligen:
SPSite objSite = new SPSite("http://server/sites/samples");
SPFolder objFolder = objSite.OpenWeb().GetFolder("Shared Documents");
string sourcePath = "C:\\test.doc";
FileInfo fi = new FileInfo(sourcePath);
int fileSize = (int) fi.Length;
SPFileCollection objFiles = objFolder.Files;
byte[] myFile = new byte[fileSize];
FileStream mystream = new System.IO.FileStream(sourcePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
mystream.Read(myFile, 0, fileSize);
mystream.Close();
string strFileUrl = "Test.doc";
SPFile spf = objFiles.Add(strFileUrl, myFile);
Der aufgeführte Quellcode ist sowohl für WSS 2.0 als auch für WSS 3.0 einsetzbar.
Hallo Dorrit,
ich erzeuge auf einer Website mit PHP xml-Dateien für InfoPath, die ich bisher immer per Mail an den jeweiligen Bearbeiter geschickt habe. Nun soll WSS 3.0 genutzt werden, um diese Daten zu verwalten usw.
Ich frage mich nun, wie ich die Dateien an den Server schicken kann, damit dieser sie in seine Bibliothek lädt. Würde mit dem Skript automatisch ein Ordner auf dem Server überwacht, sodass beim Eingang neuer Dateien diese auch in WSS angezeigt werden? Wenn ja, an welcher Stelle muss dieses Skript eingebaut werden?
Vielen Dank, Anke
Hallo Anke,
wenn Du Dateien in eine Sharepoint Dokumentenbibliothek hochlädst (z.B. mit dem angegeben Skript oder auch manuell), dann werden diese automatisch im WSS (in der entsprechenden Bibliothek) angezeigt.
Ich denke, Du könntest das Skript z.B. direkt nach der Erzeugung der xml-Dateien aus php aufrufen (z.B. über einen Webservice) oder aber die Dateien in einem Ordner sammeln und mit C# eine Konsolenanwendung schreiben, die zeitgesteuert (oder auch direkt aus php) gestartet wird…
Viele Grüße
Dorrit
Hallo,
persönlich würde ich das SPSite / SPFolder Objekt in eine Using-Anweisung packen, da es sonst nicht automatisch bereinigt wird (Dispose) vgl. http://ansgar.hinerasky.com/2010/03/dispose-bei-spsite/
Viele Grüße
Ansgar
Klar - danke für die Ergänzung! (der Post ist halt fast 3 Jahre alt - damals war SharePoint 2007 noch frisch und Mann wie Frau froh, wenn sie es überhaupt geschafft hatten, eine Datei hochzuladen… ;-))