从外部应用程序上传文件到共享点服务器

时间:2013-11-28 07:26:54

标签: vb.net sharepoint sharepoint-2010 shared-libraries

我的客户已请求将文件从外部应用程序上传到其共享点服务器。所以我设计了一个Windows应用程序,并使用了客户端提供的Microsoft.sharepoint.dll,并使用以下代码进行上传。

 Public Function UploadFileToSharepoint(ByVal pstrSourceFilePath As String, ByVal pstrTargeSPURL As String) As Boolean

    If Not File.Exists(pstrSourceFilePath) Then

        Throw New ArgumentException(String.Format("{0} does not exist", pstrSourceFilePath), "srcUrl")

    End If

    Dim site As SPWeb = New SPSite(pstrTargeSPURL).OpenWeb()

    Dim fStream As FileStream = File.OpenRead(pstrSourceFilePath)
    Dim contents(CInt(fStream.Length)) As Byte
    fStream.Read(contents, 0, CInt(fStream.Length))
    fStream.Close()

    EnsureParentFolder(site, pstrTargeSPURL)

    site.Files.Add(pstrTargeSPURL, contents)

    Return True
End Function

我能够编译它,但在运行应用程序时,我收到的错误如“无法加载或找到程序集”Microsoft.Sharepoint.Library.dll“。

我的问题:是否有可能开发一个应用程序来创建文件夹结构并将文件上传到共享点服务器而不在机器上安装共享点但只有共享点dll?

建议我进行这种开发的方法。将来,我的应用程序将在未安装共享点服务器的计算机上运行。

Rupesh

2 个答案:

答案 0 :(得分:2)

是的,你可以使用客户端对象模型来做到这一点 - 只需在项目中引用Microsoft.SharePoint.Client。这是如何在C#中实现的,VB.net应该没有太大的不同。

ClientContext context = new ClientContext("http://mydomain");
Web web = context.Web;
FileCreationInformation newFile = new FileCreationInformation();
newFile.Content = System.IO.File.ReadAllBytes(@"C:\MyFile.docx");
newFile.Url = "MyFile.docx"; 
List docs = web.Lists.GetByTitle("Documents");
Microsoft.SharePoint.Client.File uploadFile = docs.RootFolder.Files.Add(newFile);
context.Load(uploadFile);
context.ExecuteQuery();

答案 1 :(得分:0)

您应该考虑使用SharePoint客户端对象模型(CSOM)。这将允许您从客户端与SharePoint进行交互。

此处有更多信息 - > http://msdn.microsoft.com/en-us/library/office/ee535451(v=office.14).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1