using Microsoft.SharePoint.Client; using Microsoft.SharePoint.Client.Publishing; using Microsoft.SharePoint.Client.Publishing.Navigation; using Microsoft.SharePoint; using System.IO; ... using (ClientContext context = new ClientContext(@"https://webapplicationname/sitename")) { context.Credentials = System.Net.CredentialCache.DefaultCredentials; using (FileStream fs = new FileStream(@"c:\docs\sample.doc", FileMode.Open)) { Microsoft.SharePoint.Client.File.SaveBinaryDirect(context, @"/Documents/sample.doc", fs, true); } }
One major thing I'd like to highlight in the code above is that I was trying to set the context to reference a subsite that is located under the root site collection. After a bit of experimentation, I actually stumbled onto the solution which is as follows:
using (ClientContext context = new ClientContext(@"https://webapplicationname")) { context.Credentials = System.Net.CredentialCache.DefaultCredentials; using (FileStream fs = new FileStream(@"c:\docs\sample.doc", FileMode.Open)) { Microsoft.SharePoint.Client.File.SaveBinaryDirect(context, @"sitename/Documents/sample.doc", fs, true); } }
In the code that worked, notice that I set the context to reference the root site collection and then used the second parameter in the SaveBinaryDirect method call to specify the relative path to the document library on the site in question. At that point, the code worked perfectly and I was able to upload the document to the site's document library without any issues.
Hopefully, this may help solve your problem as well.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.