C#文件断点续传实现方法

2019-12-26 13:16:26于海丽
  • if (remain < byteTemp)  byteTemp = remain; 
  • }  Console.WriteLine("下载成功!"); 
  • }  catch (Exception ex) 
  • {  Console.WriteLine(ex.Message); 
  • }  finally 
  • {  fileStream.Close(); 
  • fileStream.Dispose();  stream.Close(); 
  • stream.Dispose();  } 
  • }  /// <summary> 
  • /// 上传文件  /// </summary> 
  • /// <param name="path">共享目录路径+文件名称</param>  /// <param name="local">本地路径</param> 
  • /// <param name="username">用户名</param>  /// <param name="password">密码</param> 
  • static void ResponseWindowsShared(string path, string local, string username, string password)  { 
  • //文件总大小  int allBytesCount = 0; 
  • //每次传输大小  int byteTemp = 1024; 
  • //当前位置  int bytePosition = 0; 
  • //剩下大小  int remain = 0; 
  • System.Net.FileWebRequest request = null;  System.IO.Stream stream = null; 
  • try  { 
  • //时间戳   string strBoundary = "----------" + DateTime.Now.Ticks.ToString("x"); 
  • Uri uri = new Uri(path);  byte[] bytes = System.IO.File.ReadAllBytes(local); 
  • request = (System.Net.FileWebRequest)System.Net.FileWebRequest.Create(uri);  request.Method = "POST"; 
  • //设置获得响应的超时时间(300秒)   request.Timeout = 300000; 
  • request.ContentType = "multipart/form-data; boundary=" + strBoundary;  request.ContentLength = bytes.Length; 
  • System.Net.ICredentials ic = new System.Net.NetworkCredential(username, password);  request.Credentials = ic; 
  • stream = request.GetRequestStream();  allBytesCount = bytes.Length; 
  • remain = allBytesCount;  while (remain > 0)