2013-11-28 46 views
0

我的客戶請求從外部應用程序上傳文件到他的共享點服務器。所以我設計了一個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

是的,你可以做,使用客戶端對象模型 - 只是參考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(); 
相關問題