文件传输

本文介绍了一个文件下载过程的实现细节,包括使用HTTP POST请求发送文件名,并从服务器接收文件数据,同时提供了用户取消操作的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private   void   DownLoadFile()  
                  {  
                          Trans_Transing   =   true;  
                          string   strFileName   =   Trans_szFileName;  
                          try  
                          {  
                                  string   strUU   =   @" http://*.*.*/*.asp";  
                                  Trans_szTextShow   =   "正在建立连接...";  
                                  HttpWebRequest   myRequest   =   (HttpWebRequest)WebRequest.Create(strUU);  
                                  myRequest.Method   =   "POST";  
                                  string   strData   =   strFileName;  
                                  myRequest.ContentLength   =   strData.Length;  
                                  Stream   newStream   =   myRequest.GetRequestStream();  
                                  if   (Trans_endThread)               //用户结束  
                                  {  
                                          if   (MessageBox.Show("正在发送数据,您确定要取消当前操作?",   "提醒",   MessageBoxButtons.YesNo,   MessageBoxIcon.Question,   MessageBoxDefaultButton.Button1)   ==   DialogResult.Yes)  
                                          {  
                                                  newStream.Close();  
                                                  Trans_Transing   =   false;  
                                                  return;  
                                          }  
                                  }  
                                  Trans_szTextShow   =   "连接成功,正在发送数据";  
                                  ASCIIEncoding   encoding   =   new   ASCIIEncoding();  
                                  byte[]   byte1   =   encoding.GetBytes(strData);  
                                  newStream.Write(byte1,   0,   byte1.Length);  
                                  newStream.Close();  
                                  if   (Trans_endThread)               //用户结束  
                                  {  
                                          if   (MessageBox.Show("正在等待网络回复,您确定要取消当前操作?",   "提醒",   MessageBoxButtons.YesNo,   MessageBoxIcon.Question,   MessageBoxDefaultButton.Button1)   ==   DialogResult.Yes)  
                                          {  
                                                  Trans_Transing   =   false;  
                                                  return;  
                                          }  
                                  }  
                                  Trans_szTextShow   =   "发送成功,等待回应";  
                                  WebResponse   response   =   null;  
                                  try  
                                  {  
                                          response   =   myRequest.GetResponse();  
                                  }  
                                  catch   (Exception   error)  
                                  {  
                                          MessageBox.Show(error.Message);  
                                  }  
                                  Stream   ReceiveStream   =   response.GetResponseStream();  
                                  Encoding   encode   =   Encoding.Default;  
                                  StreamReader   readStream   =   new   StreamReader(ReceiveStream,   encode);  
                                  char[]   read   =   new   char[256];  
                                  Trans_szTextShow   =   "";  
                                  Trans_MaxaProcessbar   =   (int)(response.ContentLength   /   256);  
   
                                  int   count   =   readStream.Read(read,   0,   256);  
                                  string   str   =   new   string(read,   0,   count);  
                                  Trans_aProcessbar++;  
                                  Trans_strTempFileData   =   str;  
                                  while   (count   >   0)  
                                  {  
                                          if   (Trans_endThread)               //用户结束  
                                          {  
                                                  if   (MessageBox.Show("正在下载数据,您确定要取消下载操作?",   "提醒",   MessageBoxButtons.YesNo,   MessageBoxIcon.Question,   MessageBoxDefaultButton.Button1)   ==   DialogResult.Yes)  
                                                  {  
                                                          readStream.Close();  
                                                          ReceiveStream.Close();  
                                                          Trans_Transing   =   false;  
                                                          return;  
                                                  }  
                                          }  
                                          count   =   readStream.Read(read,   0,   256);  
                                          if   (count   <=   0)  
                                                  break;  
                                          Trans_aProcessbar++;  
                                          string   st   =   new   string(read,   0,   count);  
                                          Trans_strTempFileData   +=   st;  
                                  }  
                                  readStream.Close();  
                                  ReceiveStream.Close();  
   
                          }  
                          catch   (Exception   error)  
                          {  
                                  MessageBox.Show(error.Message);  
                                  Trans_Transing   =   false;  
                                  return;  
                          }  
                          if   (Trans_endThread)               //用户结束  
                          {  
                                  if   (MessageBox.Show("文件下载,您确定要取消保存操作?",   "提醒",   MessageBoxButtons.YesNo,   MessageBoxIcon.Question,   MessageBoxDefaultButton.Button1)   ==   DialogResult.Yes)  
                                  {  
                                          Trans_Transing   =   false;  
                                          return;  
                                  }  
                          }  
   
                          Trans_szTextShow   =   "文件传输完毕,正在保存";  
   
                          Trans_Ret   =   WriteFile(strFileName);  
                          Trans_Transing   =   false;  
                  } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值