Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

File upload in eine Sharepoint Dokumenten-bibliothek (C#)

Wenn man pro­gramm­ge­steu­ert eine vor­han­dene Datei von der Festplatte in eine Sharepoint Dokumentenbibliothek hoch­la­den will, kann man dies mit­tels fol­gen­der C#-Befehle bewerk­stel­li­gen:

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 auf­ge­führte Quellcode ist sowohl für WSS 2.0 als auch für WSS 3.0 ein­setz­bar.

30. Mai 2007
|

Related Posts

Hallo Dorrit,
ich erzeuge auf einer Website mit PHP xml-Dateien für InfoPath, die ich bis­her immer per Mail an den jewei­li­gen Bearbeiter geschickt habe. Nun soll WSS 3.0 genutzt wer­den, um diese Daten zu ver­wal­ten usw.
Ich frage mich nun, wie ich die Dateien an den Server schi­cken kann, damit die­ser sie in seine Bibliothek lädt. Würde mit dem Skript auto­ma­tisch ein Ordner auf dem Server über­wacht, sodass beim Eingang neuer Dateien diese auch in WSS ange­zeigt wer­den? Wenn ja, an wel­cher Stelle muss die­ses Skript ein­ge­baut wer­den?
Vielen Dank, Anke

Hallo Anke,

wenn Du Dateien in eine Sharepoint Dokumentenbibliothek hoch­lädst (z.B. mit dem ange­ge­ben Skript oder auch manu­ell), dann wer­den diese auto­ma­tisch im WSS (in der ent­spre­chen­den Bibliothek) ange­zeigt.
Ich denke, Du könn­test das Skript z.B. direkt nach der Erzeugung der xml-Dateien aus php auf­ru­fen (z.B. über einen Webservice) oder aber die Dateien in einem Ordner sam­meln und mit C# eine Konsolenanwendung schrei­ben, die zeit­ge­steu­ert (oder auch direkt aus php) gestar­tet wird…

Viele Grüße
Dorrit

Hallo,

per­sön­lich würde ich das SPSite / SPFolder Objekt in eine Using-Anweisung packen, da es sonst nicht auto­ma­tisch berei­nigt wird (Dispose) vgl. http://ansgar.hinerasky.com/2010/03/dispose-bei-spsite/

Viele Grüße

Ansgar

Avatar Dorrit Riemenschneider

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 über­haupt geschafft hat­ten, eine Datei hoch­zu­la­den… ;-))

Comments are closed.

Pin It on Pinterest