>
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.