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

 

 

你可能感兴趣的:(Make webclient support upload the large file which are larger than 1G)