Upload large documents to SharePoint site using WebClient class

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);

 Subscribe to my blog

2 thoughts on “Upload large documents to SharePoint site using WebClient class

  1. 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)

    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?

Leave a Reply