>#Sharepoint FileUpload service

>

Het is met de bestaande webservices uit SharePoint niet altijd even duidelijk hoe je een bestand kan uploaden naar een documentbibliotheek. Om dit proces wat te vereenvoudigen heb ik zelf een webservice opgezet dit dit werk doet.

De FileUploadService draait op dezelfde server als de sharepoint applicatie en kan dus gebruik maken van het object model van SharePoint.

Via onderstaande code kan je een bestand uploaden naar een documentbibliotheek:

    <WebMethod(Description:="Uploads a document into a given document library")> _

    Public Function UploadDocument(ByVal filename As String, ByVal filecontents As Byte(), ByVal pathToDocLib As String) As Integer

        If filecontents Is Nothing Then Throw New Exception("File is Nothing.")

 

        Try

            Dim iStartIndex As Integer = pathToDocLib.LastIndexOf("/")

            Dim sitePath As String = pathToDocLib.Remove(iStartIndex)

            Dim docLibName As String = pathToDocLib.Substring(iStartIndex + 1)

 

            Using site As New SPSite(sitePath)

                Using web As SPWeb = site.OpenWeb()

                    Dim folder As SPFolder = web.GetFolder(docLibName)

                    Dim fileUrl As String = filename

 

                    folder.Files.Add(fileUrl, filecontents)

 

                    If Not folder.Files(fileUrl).CheckedOutBy Is Nothing Then

                        If folder.Files(fileUrl).CheckedOutBy.Name <> "" Then folder.Files(fileUrl).CheckIn("File checked in")

                    End If

 

                    Return folder.Files(fileUrl).Item.ID

 

                End Using

            End Using

 

        Catch ex As Exception : Throw ex

        End Try

 

    End Function

Deze webmethod gaat het document ook inchecken indien dat nodig is.