One of the best way to programmatically upload large documents to SharePoint site is by leveraging the UploadAsync method of WebClient class. The WebClient class internally uses the WebDav protocol. This approach can be used for uploading documents to SharePoint Online (Office 365) as well. The only limitation with this approach is that we’ll not able to set the meta-data of the documents using WebClient class. Here is the code-snippet for the same:-
WebClient oWebClient = new WebClient(); oWebClient.UseDefaultCredentials = true; byte[] bFile = System.IO.File.ReadAllBytes(@"C:SundarWEB315.wmv");
string ulr = @"http://lt010593/Shared Documents/WEB315.wmv"; System.Uri oUri = new System.Uri(ulr); oWebClient.UploadDataAsync(oUri, "PUT", bFile); oWebClient.UploadDataCompleted += new UploadDataCompletedEventHandler(oWebClient_UploadDataCompleted);
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
Pingback: Upload large documents to SharePoint site using WebClient class - My experiments with SharePoint, Azure and .NET using Visual Studio
I’ve tried every upload technique I know of in the Client Object model or plain C#, including:
WebClient http put
WebRequest http put
FileCreationInfo (via list.files.add)
Sharepoint.Client.File.SaveBinaryDirect
The largest file I can upload with SaveBinaryDirecty is 16MB, the others all have a much lower limit.
What can I do to get up to 4GB files moved into a document library?