2010-12-06 54 views
7

我現在用的是SP2010客戶端對象模型上傳到文檔庫,來自微軟的領先位置如下:http://msdn.microsoft.com/en-us/library/ee956524.aspx#SP2010ClientOMOpenXml_Uploading的SharePoint 2010客戶端對象模型 - 上傳文檔(409衝突)

我面臨着一個HTTP 409(衝突)執行以下代碼時的狀態碼。

var clientContext = new ClientContext("http://myservername/sites/subsitename") { Credentials = LogonCredentials }; 
using (var fileStream = new FileStream(@"C:\Temp\Test.txt", FileMode.Open)) 
{ 
     Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, "/MyDocLibraryName/Test_FromClientOM.txt", fileStream, true); 
} 

我在做什麼錯?

回答

8

這裏的問題是,我上傳到的網站是一個子網站,而不是sharepoint的根。我不知道這是否是一種「設計」選擇,但似乎必須使用ShareContact的根目錄作爲ClientContext,至少在這種情況下。

工作代碼:

var clientContext = new ClientContext("http://myservername") { Credentials = LogonCredentials }; 
using (var fileStream = new FileStream(@"C:\Temp\Test.txt", FileMode.Open)) 
{ 
     Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, "/sites/subsitename/MyDocLibraryName/Test_FromClientOM.txt", fileStream, true); 
} 
5

我也面臨着一個409錯誤,而試圖通過SharePoint 2010客戶端對象模型來上傳文件。請確保您上傳文件的路徑完全存在。該調用不會創建任何(子)文件夾。如果您將ClientContext連接到根子網站或直接連接到子網站,則無關緊要。只要確保您始終將SaveBinaryDirect方法提供給要上載的位置的SPSite相對URL即可。

例如,如果你在你的ClientContext連接http://somesite/sites/subsitename,確保你傳遞給SaveBinaryDirect也串/sites/subsitename/documents/filename.txt,所以相對於SPSite的,而不是你的子網站連接到使用您的ClientContext。

相關問題