2013-11-28 1 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의 파일을 업로드하는 응용 프로그램을 개발할 수 있습니까?

나에게 이런 종류의 작업을 수행 할 수있는 방법을 제안하십시오. 미래에 내 응용 프로그램은 공유 지점 서버가 설치되지 않은 컴퓨터에서 실행됩니다.

루페시

답변

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(); 
관련 문제