Make webclient support upload the large file which are larger than 1G

step1: reconstruct the WebClient class

public class MyWebClient : WebClient
    {
        
protected override WebRequest GetWebRequest(Uri address)
        {
            HttpWebRequest request 
= base.GetWebRequest(address) as HttpWebRequest;
            request.Timeout 
= -1;
            request.CachePolicy 
= new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
            request.AllowWriteStreamBuffering 
= false;
            
return request;
        }
    }

Step2: use new WebClient as the WebClient

                WebClient web = new MyWebClient();
                web.UploadFileCompleted 
+= new UploadFileCompletedEventHandler(web_UploadFileCompleted);
                web.UploadProgressChanged 
+= new UploadProgressChangedEventHandler(web_UploadProgressChanged);
                FileInfo fi 
= new FileInfo(@"D:\VirtualBox VMs\VMxp\VMxp.vdi");
                Uri uri 
= new Uri("http://127.0.0.1:9090/upload");
                web.UploadFileAsync(uri, fi.FullName);
原文地址:https://www.cnblogs.com/skyfei/p/2009122.html