带有进度条的CS模式实现FTP上传.doc_第1页
带有进度条的CS模式实现FTP上传.doc_第2页
带有进度条的CS模式实现FTP上传.doc_第3页
带有进度条的CS模式实现FTP上传.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

带有进度条的CS模式实现FTP文件上传带有进度条的CS模式实现FTP文件上传一、 软件版本开发环境:Microsoft Visual Studio 2008开发语言:C#所需插件:ProgressODoom.dll二、 前台设计实现FTP文件上传功能,首先需要在服务器上设置FTP,并且设置所需要的管理账户信息,在这里不再赘述FTP的实现方案,需要注意的是设置的管理账户需要对所属FTP有着写入的权限,在这里我我所设置的FTP如下所示:图1 FTP设置其中1指的是FTP登录地址,2指的是管理该FTP的用户名,3指的是管理账户的密码,这些信息在实现上传的过程中都需要提供,所以设置的前台界面如下:图2 FTP上传文件设置其中1就是图1中的66,2对应的是Software,3对应“wanggang”,4对应用户密码,5是上传文件列表,6是天剑上传文件按钮,7是开始上传按钮,8是上传进度条展示。需要注意的是需要在前台放置一个openFileDialog控件,这个控件是不在界面上显示的。三、 后台实现1 构造函数调用的事件 void LoadListView() listView1.View = View.Details; listView1.CheckBoxes = true; listView1.GridLines = true; listView1.Columns.Add(文件名, 150, HorizontalAlignment.Center); listView1.Columns.Add(文件大小, 150, HorizontalAlignment.Center); listView1.Columns.Add(文件路径, 150, HorizontalAlignment.Center); 2 添加上传文件按钮事件 OpenFileDialog ofd = new OpenFileDialog(); ofd.Multiselect = true; if (ofd.ShowDialog() = DialogResult.OK) foreach (string filename in ofd.FileNames) FileInfo fi = new FileInfo(filename); ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(filename); lvi.Tag = filename; lvi.SubItems.Add(fi.Length.ToString(); lvi.SubItems.Add(Path.GetDirectoryName(filename); listView1.Items.Add(lvi); 3 上传按钮事件 if (listView1.Items.Count 0) int j = 0; string count = listView1.CheckedItems.Count.ToString(); for (int i = 0; i listView1.Items.Count; i+) if (listView1.Itemsi.Checked) j+; string fileName = listView1.Itemsi.Tag.ToString(); label1.Text = string.Format(正在上传文件:0, listView1.Itemsi.Text) + : + j.ToString() + : + count; string ftpServerIP = 66; string path = Software; string url = string.Format(ftp:/0/1/2, ftpServerIP, path, fileName.Substring(fileName.LastIndexOf() + 1); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); request.Credentials = new NetworkCredential(wanggang, wanggang); request.Method = WebRequestMethods.Ftp.UploadFile; Stream des = request.GetRequestStream(); FileStream fir = new FileStream(listView1.Itemsi.Tag.ToString(), FileMode.Open, FileAccess.Read); byte buffer = new byte10240; int size = 0; int ren = 0; while (ren fir.Length) Application.DoEvents(); size = fir.Read(buffer, 0, buffer.Length); des.Write(buffer, 0, size); ren += size; Pro(ren); des.Close(); fir.Close(); else continue; public void Pro(int copy) if (gressBarEx1.InvokeRequired) gressBarEx1.Invoke(new DeleFile(Pro), new object copy ); return; foreach (ListViewItem lvi in listView1.CheckedItems) string total = lvi.SubItems1.Text; int pro = (int)(float)copy / long.Parse(total) * 100); if (pro = progressBarEx1.Maximum) progressBarEx1.Value = pro; progressBarEx1.Text = label1.Text.Split(:)0.ToString() + Environment.NewLine + string.Format(上传进度:0%, pro) + Environment.NewLine + string.Form

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论