+ -
当前位置:首页 → 问答吧 → .NET ftp上传大附件显示进度条

.NET ftp上传大附件显示进度条

时间:2011-12-17

来源:互联网

要上传几百兆的附件,使用ftp上传,代码如下:

// localFile 客户端文件的完整路径
// uploadfile ftp完整路径
 private void ftpUploadFile(string localFile, string uploadfile) //ftp上传
  {
   
  System.IO.FileInfo fi = new System.IO.FileInfo(localFile);
  FileStream fs = fi.OpenRead();
  long length = fs.Length;
  FtpWebRequest req = (FtpWebRequest)WebRequest.Create(uploadfile.Trim() + fi.Name.Trim());
  req.Credentials = new NetworkCredential("用户名", "密码"); 
  req.Method = WebRequestMethods.Ftp.UploadFile;
  req.UseBinary = true;
  req.ContentLength = length;
  req.Timeout = 10 * 1000;
  try
  {
  Stream stream = req.GetRequestStream();
  int BufferLength = 1;
  byte[] b = new byte[BufferLength];
  int i;
  while ((i = fs.Read(b, 0, BufferLength)) > 0)
  {
  stream.Write(b, 0, i);
  }
   
  stream.Close();
  stream.Dispose();

  }
  catch (Exception ex)
  {
  MessageBox.Show(this.Page,ex.Message);
  }


  }

  由于上传的附件比较大,需要显示进度条,在网上查了很多资料,结果都不如意,求高手帮忙,能提供实例代码,兄弟感激不近!

作者: stickonaspnet   发布时间: 2011-12-17

是 Web 下吗?能访问到 Session 吗?如果能,那么 while 语句中每次都记录已经读取到的字节数到 Session。然后通过 Ajax 请求定时获取已读取到的字节数,转成进度条显示就可以了。

作者: orain   发布时间: 2011-12-17