2010-12-06 204 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。

相关问题